热插拔
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
模块,这些属性将在开发时自动为您配置。
胸腺叶模板
如果您使用胸腺叶,请将spring.thymeleaf.cache
自false
. 看ThymeleafAutoConfiguration
用于其他百里叶定制选项。
FreeMarker 模板
如果您使用 FreeMarker,请将spring.freemarker.cache
自false
. 看FreeMarkerAutoConfiguration
用于其他 FreeMarker 自定义选项。
WebFlux 不支持 FreeMarker 的模板缓存。 |
Groovy 模板
如果您使用 Groovy 模板,请将spring.groovy.template.cache
自false
. 看GroovyTemplateAutoConfiguration
用于其他 Groovy 自定义选项。