1. 程式人生 > 實用技巧 >springboot+IDEA實現熱部署

springboot+IDEA實現熱部署

devtools工具:(說白了就是:例如在使用用myeclipse工具,服務在執行時,修改了java類內的內容,直接就生效了,不需要重啟服務(當然改變了類的結構是需要重啟服務的))
(1) devtools可以實現頁面熱部署(即jsp頁面修改後會立即生效,這個可以直接在application.properties檔案中配置spring.thymeleaf.cache=false來實現),
      實現類檔案熱部署(java類檔案修改後不會立即生效),實現對屬性檔案的熱部署。(java類熱部署前提條件:類的結構不發生變化(1.類方法結構不變 2.類屬性不變))
即devtools會監聽classpath下的檔案變動,並且會立即重啟應用(發生在儲存時機),注意:因為其採用的虛擬機器機制,該項重啟是很快的
(2)配置了後在修改java檔案後也就支援了熱啟動,不過這種方式是屬於專案重啟(速度比較快的專案重啟),會清空session中的值,也就是如果有使用者登陸的話,專案重啟後需要重新登陸。
預設情況下,/META-INF/maven,/META-INF/resources,/resources,/static,/templates,/public這些資料夾下的檔案修改不會使應用重啟,但是會重新載入(devtools內嵌了一個LiveReload server,當資源發生改變時,瀏覽器重新整理)

IDEA:當我們修改了Java類後,IDEA預設是不自動編譯的,而spring-boot-devtools又是監測classpath下的檔案發生變化才會重啟應用,所以需要設定IDEA的自動編譯:
(1)File-Settings-Compiler-Build Project automatically
(2)ctrl + shift + alt + /,選擇Registry,勾上 Compiler autoMake allow when app running