如何在 Spring (Netbeans) 中实现动态重新加载?

How do I implement dynamic reloading in Spring (Netbeans)?

我习惯于编写 Grails 应用程序,其中我的视图或控制器更改会在保存时自动重新部署。我现在正在串起一个 Spring Web- MVC 应用程序和我想要相同的功能。

我目前使用 Netbeans 作为 IDE,Gradle 作为构建工具和 spring-boot 插件。我记得有人谈论过使用 Jetty 的人,因为它的重启速度如此之快以至于不再需要动态 class 重新加载/部署。我听其他人提到 JRebel,几年前我曾经使用过它。我确信有一种更现代的、spring 支持的/spring 标准的方法。

我还想知道您是建议部署为 WAR 还是作为具有轻量级内置 Web 服务器的独立可执行 JAR。

赞赏推荐。

Spring 也有自己的经纪人:https://github.com/spring-projects/spring-loaded。在开发时为什么不直接使用 Spring Boot.

提供的嵌入式 Tomcat/Jetty

一个尚未解决的挑战

原来 Netbeans Gradle 插件不支持开箱即用的 "compile on save" - 这意味着 Java 代理将无法选择上的变化。作者 kelemen 提出了一种或两种解决方法。这对我来说是没有商量余地的,所以我决定将 IDE 切换到 Eclipse(糟糕的 Gradle 支持),然后是 IntelliJ Idea - 看起来很有前途。

Netbeans Gradle 作者评论:https://github.com/kelemen/netbeans-gradle-project/issues/183

或者,还有 Jrebel,据称可以支持这种 Netbeans / Gradle 组合。我无法使用 JRebel 试用版轻松让它工作。 JRebel 支持人员随时为您提供帮助,因此如果您愿意付出代价,他们的支持团队很可能会解决您的问题。

JRebel: http://zeroturnaround.com/software/jrebel/

如果有任何变化,请在下方评论...

Spring class HotswapAgent 也支持重新加载。它是 JRebel 的免费替代品。