Spring 加载 1.2.5 + Spring 启动 1.3.2。似乎无法让它工作

Spring loaded 1.2.5 + Spring Boot 1.3.2. can't seem to get it to work

我在 youtube (https://www.youtube.com/watch?v=GTrNkhVnJBU) 上看到了一个演示 Spring 已加载的视频。

我正在尝试复制相同的行为,但到目前为止仍然没有成功。

我在用什么:

Spring 工具套件 3.7.2 Spring 启动 1.3.2-RELEASE Spring 已加载 1.2.5-RELEASE Maven 版本 3.1.0 JDK1.8.0_71

我尝试了与视频中那个人所做的相同的事情(当然除了版本更新)但它不起作用。

我也尝试了 "maven plugin" 方法,如 spring 文档中所述 -> https://docs.spring.io/spring-boot/docs/current/reference/html/howto-hotswapping.html#howto-reload-springloaded-maven 但这也没有用。

我尝试将加载的 spring 版本更改为 1.2.0(文档使用该版本),但这也没有任何作用。

我 运行 STS 本身的应用程序,也从命令行尝试了 mvn spring-boot:运行,但两者都没有得到想要的结果。

当使用 mvn spring-boot:运行 我看到它正在附加代理:

[INFO] 附加代理:[C:\Users\ron.m2\repository\org\springframework\springloaded.2.5.RELEASE\springloaded-1.2.5.RELEASE.jar]

但是更改 RequestMappings 或方法签名不会被 spring 加载,因此不会反映更改。

我有点不知道为什么我不能让它工作,我们将不胜感激任何帮助。

Spring加载尚不支持spring4.2。参见 https://github.com/spring-projects/spring-loaded/issues/139

所以你要么坚持使用 DevTools 这肯定会加快开发过程(虽然不如 spring-loaded 快),要么使用 JRebel(它支持最新的 spring 版本)或者降级到 spring 4.1.

作为替代方案,您也可以尝试 Spring Boot Devtools 的自动重启功能:https://spring.io/blog/2015/06/17/devtools-in-spring-boot-1-3。它只重启应用程序,比重启整个 JVM 快得多。虽然您正在丢失应用程序状态,但它可能是替代方案。