首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Grails或Play如何检测更改和热重载类?

在Grails或Play框架中,检测更改和热重载类的功能可以通过使用开发模式来实现。这种模式允许在不重新启动整个应用程序的情况下,自动编译和重新加载已更改的类。以下是如何在Grails和Play框架中启用热重载的方法:

Grails框架:

  1. 在Grails项目的build.gradle文件中,确保以下依赖项已添加:
代码语言:txt
复制
developmentOnly "org.springframework.boot:spring-boot-devtools"
  1. grails-app/conf/application.yml文件中,启用开发模式:
代码语言:yaml
复制
grails:
    profile: web
    codegen:
        defaultPackage: com.example.myapp
    urlmapping:
        cache:
            maxsize: 1000
    controllers:
        defaultScope: singleton
    converters:
        encoding: UTF-8
    views:
        default:
            codec: html
    mappings:
        "/$controller/$action?/$id?(.$format)?" {:constraints {
            // apply constraints here
        }}
    mime:
        disable:
            accept:
                header:
                    userAgents:
                        - Gecko
                        - WebKit
                        - Presto
                        - Trident
    logging:
        level:
            org.grails.web.servlet: DEBUG
    plugins:
        rest:
            default:
                json:
                    deep: true
  1. grails-app/conf/application.groovy文件中,启用热重载:
代码语言:groovy
复制
grails.reload.enabled = true

Play框架:

  1. build.sbt文件中,添加以下依赖项:
代码语言:scala
复制
libraryDependencies += "com.typesafe.play" %% "play-sbt-plugin" % "2.8.8"
  1. build.sbt文件中,启用Play插件:
代码语言:scala
复制
enablePlugins(PlayScala)
  1. conf/application.conf文件中,启用开发模式:
代码语言:txt
复制
play.server.provider = "play.core.server.AkkaHttpServerProvider"
play.run.mode = "dev"
  1. conf/routes文件中,添加以下路由:
代码语言:txt
复制
GET     /assets/*file               controllers.Assets.versioned(path="/public", file: Asset)
  1. project/plugins.sbt文件中,添加以下插件:
代码语言:scala
复制
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.8")

通过以上步骤,您可以在Grails和Play框架中检测更改并热重载类。请注意,这些步骤可能会根据您的项目和框架版本而有所不同。在进行更改之前,请务必查阅官方文档以获取正确的配置和设置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

简洁、高效、灵活:探索 Spring 同级别的编程框架

最好的标准:Quarkus提供了一个有凝聚力的、有趣的、全栈式的框架,它利用了各类不断增长的50多个你喜欢使用的最好的库。所有这些都在一个标准的主干上。...Play 建立在 Akka,Play 提供可预测的最小的资源消耗(CPU,内存,线程)的高度可扩展的应用程序。...Play 可以直接支持日常任务重载来节省宝贵的开发时间。 Play 结合了生产力性能,可以轻松使用 Java Scala 构建可扩展的 Web 应用程序。...Dropwizard框架可以通过自定义插件组件来扩展定制,例如添加新的API端点将新的服务集成到应用程序中。 轻量级:与其他Java Web框架相比,Dropwizard框架非常轻量级。...易于部署:Dropwizard框架采用可执行Jar包的形式进行打包部署,可以轻松地在任何环境中运行,例如本地开发机器、云平台Docker容器等。

59250

Groovy、部署热加载(自定义加载器)及spring loaded 部分源码分析

热加载部署的联系 1.不重启服务器。 2.基于Java加载器实现。...从表面上来看没有什么问题,但实际你加载的对象原来的对象是两个对象,spring loaded是如何将通过热加载的文件重新指向之前的对象应该是一个要思考的问题。...根据网上的文章和实现方式,自己心里有疑问,从网上的几个例子来看,要实现的部署的过程好像加载器没有什么关系,但自己又有疑问那为什么要自己实现加载器?  ...另外,为了能够绕过 Java 的既定加载过程,我们需要实现自己的加载器,并在其中对的加载过程进行完全的控制管理。...首先,它定义watchedResources为包含要监视的资源的引用模式的字符串字符串列表。

3.2K00

动态模块化MVC框架研究 Java HotSwap 顶

不需要什么 PlayGrails,又得学一套东西。 我只需要三个原则,易用,稳定,动态。 那么抱着这套想法,进行了研究开发之旅,研究什么?动态的模块化插件化的MVC框架,大家说这有没有市场?...一个模块卸载安装,不影响到其它模块。 这个是在编写过程中发现的特点, 实现了字节码加密技术。 轻客户端,是通过远程动态加载的,但本地发现此类没有被改变,则自动使用缓存。...卸载。...以下是卸载日志: //虚拟机会卸载掉本类加载的所有对象 //详细日志: //发现[d://dyn1.jar]改变,开始重载【com.linapex.dyn.code4.classload.HotSwapURLClassLoader...大家提一些想法优点出来?

68910

使用 Android Studio 进行 Flutter 开发

” 不使用断点运行应用 点击工具栏中的 Play 按钮,选择 Run > Run。底部的 Run 窗口会有日志输出: 使用断点运行应用 如果需要,在源代码中设置断点。...快速编辑查看效果 Flutter 有效加快开发周期。使用 重载 功能,你可以在修改源码后,几乎马上看到效果。详细信息请查阅 使用重载。...IntelliJ settings keymap 重载重启 重载的工作原理是将更新后的代码注入 Dart VM(虚拟机)。不仅包括添加新,还包括添加方法字段到已有的中。...但有些类型的代码是无法被重载的: 全部变量的初始化 静态变量的初始化 应用的 main() 方法 对于这些更改,你无需结束调试过程而直接重启 (hot restart) 你的应用:不要点击 Stop...按钮,只需点击 Run 按钮(在运行中), Debug 按钮(在调试中), 或者按住 Shift 键点击重载按钮。

6.1K30

JAVA常用框架及漏洞

为了准备提供页面对应用程序数据访问的 JSF 上下文防止对页面未授权不正确的访问,所有与应用程序的用户交互均由一个前端FacesServlet(控制器)来处理。 漏洞: 1....Vaadin server 安全漏洞 GWT介绍: GWT提供了一组基于Java语言的开发包,这个开发包的设计参考Java AWT包设计,命名规则、接口设计、事件监听等都AWT非常类似。...GWT 跨站脚本漏洞 Grails介绍: Grails是一套用于快速Web应用开发的开源框架,它基于Groovy编程语言,并构建于Spring、Hibernate等开源框架之上,是一个高生产力一站式框架...Grails数据绑定安全绕过漏洞 Play介绍: Play是一款开源、轻量、无状态、Web友好的架构,使用Java语言编写并遵循MVC模式,集成了当今Web开发所需的组件API。...此外Play可以给应用程序提供可预测的最小的资源消耗(CPU,内存,线程),可构建高扩展的应用程序。 漏洞: 1. Play任意文件读取 2.

3.3K20

在你的浏览器中构建和共享开发人员环境

如何点击一个按钮,并在一个预先配置的开发环境找到自己,动动手指就可以让IDE拥有丰富的编辑工具项目资源?如何在本地开发,但在云中编译运行项目?好的,第一件事情是首要的。...首先,这是触发远程编译运行进程的能力。你可以使用便宜的笔记本电脑来编译运行需要JDK 7,MavenMongo的复杂Java项目,来访问开发运行日志查看正在运行的应用程序。...你可能还想在Web端本地客户端之间同步您的项目。简而言之,先离线处理项目,然后将更改推回到远程Codenvy工作区是可能的,反之亦然,如果是先在云中处理项目,则在本地执行更改。...一般工作流程可能如下所示: 拉一个项目>在本地IDE中进行更改>将更改推回到云>触发远程编译运行 将你的桌面与云结合使用,而不是代替你的桌面。...好吧,通过发布这样一个Factory按钮,取代了编写关于“如何试用一个特定框架”的冗长指导教程的工作。你所有的用户需要的是一个浏览器。不需要下载,不需要安装,不用设置环境变量。

4.4K90

Spring Boot DevTools:加速开发的部署工具

Spring Boot DevTools是一个为开发者设计的模块,支持部署(hot swapping),能够实现应用的快速重启自动重载,极大地提高了开发效率。...Spring Boot应用,添加一个基本的控制器视图,用来测试部署功能。...; }}修改HelloController中的返回字符串,保存文件并观察IDE是否自动重编译应用重启。测试验证对应用进行更改后,观察无需完全重启容器的情况下,应用如何响应更改。...Spring Boot DevTools是一个为开发者设计的模块,支持部署(hot swapping),能够实现应用的快速重启自动重载,极大地提高了开发效率。...; }}修改HelloController中的返回字符串,保存文件并观察IDE是否自动重编译应用重启。测试验证对应用进行更改后,观察无需完全重启容器的情况下,应用如何响应更改

21621

我是如何成为一个JavaWeb开发者的

你要从数据库中得到内容,以显示在网页上,从用户那里接收内容存储到数据库中。所以,Javaweb开发人员需要知道如何使用JPA。   ...Grails   Grails是建立在Spring之上的快速应用程序开发框架。它不但拥有Spring的所有内容,还借鉴了Groovy的生产力优势。...我喜欢将Grails形容为用Groovy包装过的Spring。关键一点要记住的是,其背后依然是Spring。   Grails现在越来越受到企业的欢迎。...Grails的优势之一就是其出色的社区支持。   SpringRoo   SpringRoo是一个纯Java框架,这似乎Grails的作用相同,不过它没有Groovy。...Play   基于Scala的框架。虽然我还没有尝试过Play。但是现在市场上面的反响不错。所以有机会的话我会试一试。不过它目前还没有被企业中广泛采用。至少到现在为止还没有。

94410

Unity基础教程-物体运动(十)——环境交互(Movement with Consequences)

创建一个带有红色非活动区域绿色活动区域的材质选择器组件,这将用于更改检测区域的可视化。虽然不需要将其添加到受影响的游戏对象中,但这仍然是有意义的。 ?...2.5 重载 因为重载(在编辑器播放模式下重新编译)将调用OnDisable,所以它违反了我们刚刚声明的规则。这将导致退出事件被调用以响应重载,此后已经在区域中的对象会被忽略。...幸运的是,我们可以在OnDisable中检测重载。如果同时启用了该组件并且游戏对象处于活动状态,则我们将进行重载,并且什么也不做。...如果禁用了该组件,仅仅是禁用反激活游戏对象,则应该继续进行。否则,如果游戏对象未处于活动状态,则该游戏对象将被停用销毁,应该继续。否则,要么是重载,要么是仅组件被销毁,则将其忽略。...而限制则是它必须是与事件的参数列表匹配的无效方法属性设置器,或者最多具有一个可序列化的参数。例如,我进行了一些设置,以便在更改检测区域本身的可视化效果的同时,在检测区域内有东西时关闭悬浮区域。 ?

3.1K10

在您的浏览器中构建和共享开发者环境

您可能还想在Web端本地客户端之间同步您的项目。简而言之,离线处理项目然后将更改推送(push)回远程Codenvy工作区,或是在云端工作然后在本地拉取(pull)更改。...一般工作流程可能如下所示: 拉取一个项目>在本地IDE中进行更改>将更改推送回云端>触发远程构建运行 使用云搭配您的桌面,而不是取代它。...用户也可以更改环境,即编辑现有的Docker文件创建自己的配置。原来的项目工作空间依然不会受到影响,而临时工作空间在几个小时内就被销毁了。...简单的解决方案 例如,上述PetClinic项目的预先需求不会很多,但仍然有用户需要预装JDK,GradleEclipse(任何其他IDE)。...通过这种方式尝试一个新的技术/项目不是一个矫枉过正的事情吗?你需要多少时间来安装所有这些东西,从而真正地运行项目?

1.8K70

Spring Boot DevTools:加速开发的部署工具

Spring Boot DevTools是一个为开发者设计的模块,支持部署(hot swapping),能够实现应用的快速重启自动重载,极大地提高了开发效率。...环境隔离当使用DevTools时,它默认为应用配置两个加载器,一个用于第三方库(不常更改),另一个用于项目(频繁更改)。这样可以在不重启整个应用的情况下,只重启项目。...Spring Boot应用,添加一个基本的控制器视图,用来测试部署功能。...; }}修改HelloController中的返回字符串,保存文件并观察IDE是否自动重编译应用重启。测试验证对应用进行更改后,观察无需完全重启容器的情况下,应用如何响应更改。...通过其自动重启实时重载的功能,可以实时看到代码更改的效果,从而更加专注于功能开发。在日常开发中合理利用DevTools,将是提高开发效率的关键。

20421

我是如何成为一个JavaWeb开发者的

你要从数据库中得到内容,以显示在网页上,从用户那里接收内容存储到数据库中。所以,Javaweb开发人员需要知道如何使用JPA。   ...Grails   Grails是建立在Spring之上的快速应用程序开发框架。它不但拥有Spring的所有内容,还借鉴了Groovy的生产力优势。...我喜欢将Grails形容为用Groovy包装过的Spring。关键一点要记住的是,其背后依然是Spring。   Grails现在越来越受到企业的欢迎。...Grails的优势之一就是其出色的社区支持。   SpringRoo   SpringRoo是一个纯Java框架,这似乎Grails的作用相同,不过它没有Groovy。...Play   基于Scala的框架。虽然我还没有尝试过Play。但是现在市场上面的反响不错。所以有机会的话我会试一试。不过它目前还没有被企业中广泛采用。至少到现在为止还没有。

87410

热加载原理解析与实现

区别:部署:针对整个应用,包括Jar包、class文件、配置文件等;会清空内存;热加载;热加载:一般只针对class文件(或者针对框架自定义一些重载逻辑);一般不会清空内存,有内存溢出风险;但是,美团的远程部署框架...原理: spring-boot-devtools会检测路径的变化,当路径内容发生变化后会自动重启应用程序。Spring Boot的重启技术通过使用两个加载器。...Urlclasspath为当前项目的lib文件件下,用于存放新增修改的Class,以便加载器可以正确的找到上传的Class。 图片如何增强加载器?...如何进行重载?...4.MyBatis重载前置知识: MyBatis源码解析 Spring MyBatis部署的主要处理流程:启动时:获取所有Configuration路径,并维护它Spring Context的对应关系

4.8K30

Go 项目自动重载解决方案 —— Air 使用入门

下面,我们将一步步介绍如何使用 Air 来实现 Go 项目的自动重载,让你的开发过程更加顺畅。什么是 Air?Air 是一个为 Go 项目提供自动重载功能的工具。...通过监听项目中文件的变化,自动重新编译并运行你的应用,从而达到重载的效果,极大地提升开发效率。Air 的使用也非常简单,下面我们将通过几个步骤来详细介绍。...使用 Air接下来,让我们看看如何在实际项目中使用 Air 来实现自动重载功能。...当它检测到文件变化时,air 会触发构建过程,并在构建成功后重启你的应用程序。这样,你就不需要每次修改代码后都手动重新编译运行了。...结尾使用 Air,你的 Go 项目开发过程将变得更加顺畅,不再需要手动重启应用来加载更改。通过自动重载,你可以更专注于代码的编写调试,提高开发效率。

10710

ASP.NET Core 6.0对重载的支持

.NET 重载技术支持将代码更改(包括对样式表的更改)实时应用到正在运行的程序中,不需要重启应用,也不会丢失应用状态。 一、整体介绍 目前 ASP.NET Core 6.0 项目都支持重载。...在 MVC Razor Pages 应用中,重载自动触发浏览器刷新 4. 删除 Razor组件参数属性不会导致重新呈现组件。必须重启应用。...Blazor WebAssembly 重载支持具有以下条件: 重载对方法主体的大多数更改做出反应,例如添加、删除编辑变量、表达式语句。...还支持对 lambda 表达式本地函数的主体进行更改。 不支持添加新的 lambda 本地函数、添加新的运算符关键字表达式。 不支持更改方法参数的名称。 不支持方法主体之外的更改。....NET CLI 使用 dotnet watch 代码激活重载: dotnet watch 若要强制应用重新生成重启,请使用命令行界面中的键盘组合Ctrl+R 进行不受支持的代码编辑时(称为强制编辑

1.9K10

Unity Demo教程系列——Unity塔防游戏(六)动画(Lively Enemies)

(出现消失) 7 幸存重载 使用PlayableGraph的唯一问题是不可序列化。这不是构建中的问题,但是当重新加载发生时,动画将在编辑器中停止。...由于敌人依靠检测动画的结束来进行前进,因此他们可能会陷入困境。因此,这不仅仅是视觉上的故障。我们必须从重载中恢复,以保持游戏正常运行。...7.1 重建 Playable Graph EnemyAnimator是可序列化的,但是在重载期间本机数据丢失后,其视图将无法工作。我们可以通过在视图上调用IsValid来检测到这一点。...将其包装在公共属性中,以便敌人也可以检测到它。我们仅在编辑器中需要它,因此我们可以使代码成为条件语句。 ? 要在重载后恢复动画状态,我们需要创建一个新的视图。...这不会恢复过渡效果,但是过渡纯粹是装饰性的,无论如何重载期间游戏都会冻结。 ? 如果Enemy.GameUpdate无效,它现在需要先恢复动画,然后再执行其他任何操作。 ?

2.2K20

Groovy 初学者指南

在本篇博客中,我们将探讨Groovy与Java之间的联系与区别,深入了解Groovy的语法,并展示如何在Java中使用GroovyShell来运行Groovy脚本。...Groovy可以直接调用Java库,这意味着可以在Groovy中使用Java,也可以在Java中使用Groovy。这种无缝集成使得Groovy成为Java开发人员的有力补充。...通过使用Groovy的元编程特性,你可以更加灵活地编写代码,并且可以根据需要动态添加、修改删除的属性方法。...通过GroovyClassLoader,我们可以加载Groovy脚本Groovy,并使用其实例来调用方法访问属性。...Web开发框架 - Grails Grails是一个基于Groovy的全栈Web应用程序开发框架,它建立在Spring BootGroovy语言之上。

35330
领券