玩轉 Springboot 2 之熱部署(DevTools)
Devtools 介紹
SpringBoot 提供了熱部署的功能,那啥是熱部署累?SpringBoot官方是這樣說的:只要類路徑上的檔案發生更改,就會自動重新啟動應用程式。在IDE中工作時,這可能是一個有用的功能,因為它為程式碼更改提供了非常快速的反饋迴圈。預設情況下,將監視類路徑上指向資料夾的任何條目的更改。請注意,某些資源(如靜態資產和檢視模板)無需重新啟動應用程式。
觸發重啟
由於DevTools監視類路徑資源,因此觸發重新啟動的唯一方法是更新類路徑。導致更新類路徑的方式取決於您使用的IDE。在Eclipse中,儲存修改後的檔案會導致更新類路徑並觸發重新啟動。在IntelliJ
IDEA中,構建專案(Build -> Build Project)具有相同的效果。
同時DevTools 還提供了執行遠端應用程式功能,其實就是修改原生程式碼,就能夠實時的更新到遠端應用中,這樣就可以實現原生程式碼和遠端伺服器程式碼聯合除錯。
使用 DevTools 進行熱部署操作
Eclipse 使用SpringBoot DevTools
第一步是引入 spring-boot-devtools 依賴,具體程式碼如下:
<dependencies>
<dependency>
<groupId>org.springframework.boot </groupId>
<artifactId> spring-boot-devtools </artifactId>
<optional>true</optional>
</dependency>
</dependencies>複製程式碼
然後就完事啦。我們就可以使用了,修改類和頁面啥的就不用在重啟專案了啊哈。
IntellJ IDEA 使用SpringBoot DevTools
第一步是引入 spring-boot-devtools 依賴,具體程式碼如下:
<dependencies>
<dependency>
<groupId>org.springframework.boot </groupId>
<artifactId> spring-boot-devtools </artifactId>
<optional>true</optional>
</dependency>
</dependencies>複製程式碼
你可能覺得已經完事了,但是我可以肯定的告訴你 NO NO NO,還需要做一點小小的配置。
第二步 啟動自動編譯功能。具體操作如下:
File -> Settings -> Build,Execution,Deplyment -> Compiler,選中打勾 Build project automatically。具體操作如下圖:第三步設定程式執行過程中,依然允許自動編譯。具體操作如下:
使用快捷鍵 Shift+Ctrl+Alt+/ ,點選 Registry 選項 ,選中compiler.automake.allow.when.app.running 具體操作如下圖:進行完如上操作後就可以放心的在 IntellJ IDEA 上進行 SpringBoot 專案的開發了,在也不用擔心重啟的問題啦。
DevTools 常用配置介紹
正常來講在使用 DevTools 的過程中是不需要進行配置的,如果你需要自定義重啟目錄和不需要重啟的目錄等資訊的話,SpringBoot 也為我們提供了具體的配置項在 application.properties 中。
常用配置如下:
spring.devtools.restart.log-condition-evaluation-delta=false #禁用日誌報告spring.devtools.restart.exclude=static/,public/ #不需要修改觸發重啟的檔案目錄spring.devtools.restart.additional-exclude #預設配置下還需要在新增的排除目錄spring.devtools.restart.additional-paths=#新增需要監視需改檔案後重啟的路徑spring.devtools.restart.enabled=true #是否禁用重啟