java - Spring Boot 中的热插拔

标签 java eclipse spring intellij-idea spring-boot

我一直在使用 Spring Boot 进行 P.O.C。

到目前为止,它进展得非常好并且很有前途,但有一个主要缺点:我使用的是嵌入式服务器(即,将 Web 应用程序打包在 .jar 中),因此在开发时我每次更改 CSS、HTML 或 JS 文件时都必须重建 jar 并重新启动服务器。没有热插拔。这确实减慢了 UI 开发速度。

我可以想到几个快速修复方法,例如从不同的域加载静态资源并从本地 nginx 提供服务,以及更多类似的变体,但是没有内置的-使用 IntelliJ/Eclipse 时有某种选项吗?

最佳答案

有多种选择。在 IDE 中运行(尤其是在调试时)是进行开发的好方法(所有现代 IDE 都允许重新加载静态资源,并且通常还允许热交换 Java 类更改)。 Spring Boot devtools 是一种获得相当大提升的廉价方法(只需将其添加到类路径中)。它的工作原理是在检测到更改时在热 JVM 中重新启动应用程序。它还会在运行时关闭 thymeleaf 缓存等内容,因此您不必记住自己执行此操作。如果您使用更高级别的工具编写代码,则可以将其与外部 css/js 编译器进程一起使用。

Spring Loaded不再推荐,但可能仍在使用。如果您需要零延迟的热插拔(例如 JRebel),更复杂的基于代理的工具会更好地工作。

请参阅docs一些最新内容

关于java - Spring Boot 中的热插拔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21405230/

相关文章:

java - 我正在尝试将文本从控制台记录到文本文件,但未创建文本文件

java - 从java中的mysql存储过程中获取参数

java - 如何将批处理文件重新制作为 Shell 脚本

css - Eclipse插件自动编译Sass文件

java - 如何从 Java 启动 Eclipse 命令?

java - 如何使用 Java 7 和 Maven 在 Eclipse Kepler 中运行 JSR 269 注释处理器

java - Maven.surefire.util.SurefireReflectionException 在测试 Junit 测试时

java - Spring Boot和Spring Cloud配置客户端错误

spring - 带有对象参数的模拟 Controller

java - 使用 ehcache 缓存 java.util.Map