熱插拔

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

快速應用程式重啟

spring-boot-devtools 模組包含對應用程式自動重啟的支援。雖然不如 JRebel 等技術快,但通常比“冷啟動”快得多。在研究本文件稍後討論的一些更復雜的重新載入選項之前,您應該嘗試一下。

有關更多詳細資訊,請參見 開發人員工具 部分。

不重啟容器重新載入 Java 類

許多現代 IDE(Eclipse、IDEA 等)都支援位元組碼的熱插拔。因此,如果您進行的更改不影響類或方法簽名,它應該能夠乾淨地重新載入,並且沒有副作用。

© . This site is unofficial and not affiliated with VMware.