熱插拔
Spring Boot 支援熱插拔。本節回答了有關其工作原理的問題。
重新載入靜態內容
有多種熱過載選項。推薦的方法是使用 spring-boot-devtools,因為它提供了額外的開發時功能,例如支援快速應用程式重啟和 LiveReload,以及合理的開發時配置(例如模板快取)。Devtools 透過監視 classpath 的更改來工作。這意味著靜態資源更改必須經過“構建”才能生效。預設情況下,在 Eclipse 中儲存更改時會自動發生。在 IntelliJ IDEA 中,Make Project 命令會觸發必要的構建。由於 預設重啟排除,靜態資源的更改不會觸發應用程式的重啟。但是,它們會觸發即時重新載入。
或者,在 IDE 中執行(尤其是開啟除錯時)是進行開發的好方法(所有現代 IDE 都允許重新載入靜態資源,並且通常也允許熱插拔 Java 類更改)。
最後,可以配置 Maven 和 Gradle 外掛(參見 addResources 屬性),以支援從命令列執行,並直接從原始檔重新載入靜態檔案。如果您使用更高階的工具編寫該程式碼,可以將其與外部 css/js 編譯器程序一起使用。
不重啟容器重新載入模板
Spring Boot 支援的大多數模板技術都包含一個停用快取的配置選項(本文件稍後將介紹)。如果您使用 spring-boot-devtools 模組,這些屬性會在開發時為您 自動配置。
Thymeleaf 模板
如果您使用 Thymeleaf,請將 spring.thymeleaf.cache 設定為 false。有關其他 Thymeleaf 自定義選項,請參見 ThymeleafAutoConfiguration。
FreeMarker 模板
如果您使用 FreeMarker,請將 spring.freemarker.cache 設定為 false。有關其他 FreeMarker 自定義選項,請參見 FreeMarkerAutoConfiguration。
| FreeMarker 的模板快取不支援 WebFlux。 |
Groovy 模板
如果您使用 Groovy 模板,請將 spring.groovy.template.cache 設定為 false。有關其他 Groovy 自定義選項,請參見 GroovyTemplateAutoConfiguration。