熱抽換
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 範本
如果您使用 Thymeleaf,請將 spring.thymeleaf.cache
設定為 false
。 有關其他 Thymeleaf 自訂選項,請參閱 ThymeleafAutoConfiguration
。
FreeMarker 範本
如果您使用 FreeMarker,請將 spring.freemarker.cache
設定為 false
。 有關其他 FreeMarker 自訂選項,請參閱 FreeMarkerAutoConfiguration
。
Groovy 範本
如果您使用 Groovy 範本,請將 spring.groovy.template.cache
設定為 false
。 有關其他 Groovy 自訂選項,請參閱 GroovyTemplateAutoConfiguration
。