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...