Spring Boot 支持热插拔。 本节回答有关其工作原理的问题。Spring中文文档

重新加载静态内容

热重载有多种选择。 推荐的方法是使用 spring-boot-devtools,因为它提供了额外的开发时功能,例如支持快速应用程序重启和 LiveReload,以及合理的开发时配置(例如模板缓存)。 Devtools 通过监视类路径的更改来工作。 这意味着必须“构建”静态资源更改才能使更改生效。 默认情况下,当您保存更改时,这会在 Eclipse 中自动发生。 在 IntelliJ IDEA 中,“生成项目”命令会触发必要的构建。 由于默认重启排除项,对静态资源的更改不会触发应用程序的重启。 但是,它们确实会触发实时重新加载。Spring中文文档

或者,在 IDE 中运行(尤其是在调试开启的情况下)是进行开发的好方法(所有现代 IDE 都允许重新加载静态资源,并且通常还允许热插拔 Java 类更改)。Spring中文文档

最后,可以配置 Maven 和 Gradle 插件(请参阅属性)以支持从命令行运行,并直接从源代码重新加载静态文件。 如果你使用更高级别的工具编写代码,你可以将其与外部 css/js 编译器进程一起使用。addResourcesSpring中文文档

在不重新启动容器的情况下重新加载模板

Spring Boot 支持的大多数模板技术都包含用于禁用缓存的配置选项(本文档稍后将介绍)。 如果使用该模块,则会在开发时自动为您配置这些属性。spring-boot-devtoolsSpring中文文档

百里香叶模板

如果使用 Thymeleaf,请设置为 。 有关其他 Thymeleaf 自定义选项,请参阅 ThymeleafAutoConfigurationspring.thymeleaf.cachefalseSpring中文文档

FreeMarker 模板

如果使用 FreeMarker,请设置为 。 有关其他 FreeMarker 自定义选项,请参阅 FreeMarkerAutoConfigurationspring.freemarker.cachefalseSpring中文文档

Groovy 模板

如果使用 Groovy 模板,请设置为 。 有关其他 Groovy 自定义选项,请参阅 GroovyTemplateAutoConfigurationspring.groovy.template.cachefalseSpring中文文档

快速应用程序重启

该模块包括对自动应用程序重启的支持。 虽然不如JRebel等技术快,但它通常比“冷启动”快得多。 在研究本文档后面讨论的一些更复杂的重新加载选项之前,您可能应该先尝试一下。spring-boot-devtoolsSpring中文文档

有关详细信息,请参阅开发人员工具部分。Spring中文文档

在不重新启动容器的情况下重新装入 Java 类

许多现代IDE(Eclipse、IDEA等)都支持字节码的热插拔。 因此,如果所做的更改不影响类或方法签名,则它应该干净地重新加载,而不会产生任何副作用。Spring中文文档