热交换
Spring Boot支持热插拔。本节将解答其工作原理的问题。
重新加载静态内容
热装填有多种选择。推荐的方法是Spring-boot-devtools,因为它提供了额外的开发阶段功能,如支持快速应用重启和LiveReload,以及合理的开发阶段配置(如模板缓存)。Devtools 的工作原理是监控类路径中的变更。这意味着静态资源更改必须被“构建”才能生效。默认情况下,当你保存更改时,Eclipse 会自动生成。在 IntelliJ IDEA 中,Make Project 命令触发必要的构建。由于默认的重启排除,对静态资源的更改不会触发应用程序的重启。但它们会触发一次实时重载。
另外,在IDE中运行(尤其是开启调试时)是进行开发的好方法(所有现代IDE都允许重新加载静态资源,通常还支持对Java类更改的热插拔)。
最后,还可以配置 Maven 和 Gradle 插件(参见addResources属性)支持从命令行运行,并直接从源码重新加载静态文件。如果你用高级工具编写代码,可以搭配外部CSS/js编译进程使用。
无需重启容器即可重新加载模板
Spring Boot 支持的大多数模板技术都包含一个配置选项,可以禁用缓存(本文后面会详细说明)。如果你使用Spring-boot-devtools这些属性在开发时会自动为你配置。
Thymeleaf 模板
如果你用百里梅叶,设置Spring.百里香叶.缓存自false. 看ThymeleafAutoConfiguration用于其他Thymeleaf定制选项。
FreeMarker 模板
如果你用FreeMarker,设置spring.freemarker.cache自false. 看FreeMarkerAutoConfiguration用于其他FreeMarker定制选项。
| FreeMarker 的模板缓存不支持 WebFlux。 |
Groovy 模板
如果你用Groovy模板,设置春.groovy.模板.缓存自false. 看GroovyTemplateAutoConfiguration用于其他Groovy定制选项。