SpringBoot配置devtools實現熱部署

2022-09-12 06:33:12 字數 1236 閱讀 2704

spring為開發者提供了乙個名為spring-boot-devtools的模組來使spring boot應用支援熱部署,提高開發者的開發效率,無需手動重啟spring boot應用。

devtools的原理

深層原理是使用了兩個classloader,乙個classloader載入那些不會改變的類(第三方jar包),另乙個classloader載入會更改的類,稱為restart classloader,這樣在有**更改的時候,原來的restart classloader 被丟棄,重新建立乙個restart classloader,由於需要載入的類相比較少,所以實現了較快的重啟時間。

使用需要新增以下的配置:

org.springframework.boot

spring-boot-devtools

true

org.springframework.boot

spring-boot-m**en-plugin

true

說明:

(3) 如果想要使得當非classpath下的檔案發生變化時應用得以重啟,使用:spring.devtools.restart.additional-paths,這樣devtools就會將該目錄列入了監聽範圍。

devtools的配置

#熱部署生效

spring.devtools.restart.enabled=true

#設定重啟的目錄

#spring.devtools.restart.additional-paths=src/main/j**a

#classpath目錄下的web-inf資料夾內容修改不重啟

spring.devtools.restart.exclude=web-inf/**

idea配置

當我們修改了j**a類後,idea預設是不自動編譯的,而spring-boot-devtools又是監測classpath下的檔案發生變化才會重啟應用,所以需要設定idea的自動編譯:

(1)file-settings-compiler-build project automatically或使用ctrl+f9手動編譯

測試

參考1

詳細的請參考2

SpringBoot常用配置

前言 springboot整合了主流的第三方框架,但是需要使用springboot那一套配置方式。但是我這裡只列舉了非常非常常用的,可以看已發的幾篇部落格,慢慢會補充。當然官方文件裡也有相應的配置,可惜沒有注釋。spring.resources.cache period 設定資源的快取時效,以秒為單...

Spring boot自動配置

1 從原始碼角度看spring boot 自動配置 這個方法呼叫的是 initialize sources suppresswarnings private void initialize object sources this.webenvironment deducewebenvironment...

Spring Boot 自動配置

在spring中假設我們要使用乙個資料來源,必須在配置datasource才能使用,但是使用了spring boot這些就不存在了,相當於spring boot為我們做了很多配置的工作。spring 4提供了乙個更通用的基於條件的bean的建立方式,即使用 conditional 實現conditi...