由於以前使用myeclipes的同窗就知道,在使用myeclipes的時候,java文件或者jsp文件寫完以後會被直接熱加載到部署的容器中,從而在開發的時候,不一樣常常去重啓項目,從而達到了增長開發效率的目的。html
可是如今切換到SpringBoot以後,由於沒有外部容器的支持,並且使用gradle去構建項目,再加上idea默認不會自動編譯的特性,最終致使開發項目的時候須要常常重啓項目,這是咱們不肯意看到的。java
爲了提升開發效率,咱們下面將優化咱們的SpringBoot模版。方案通過驗證,可放心使用。git
github地址:https://github.com/LinkinStars/springBootTemplategithub
一、SpringBoot對於頁面來講,已經實現了熱加載,只是默認是關閉的,須要手動打開。spring
二、對於JAVA類來講,使用官方推薦的spring-boot-devtools
來實現熱部署(這裏是熱部署並不是熱加載注意區別)windows
三、須要關閉頁面的緩存,這裏我使用的是Thymeleaf配置在後面說明。緩存
詳細的方案說明能夠參考spring官方文檔:https://docs.spring.io/spring-boot/docs/current/reference/html/howto-hotswapping.htmlapp
spring考慮是真的周到,我一開始都沒發現文檔中還有熱部署相關的說明。jsp
一、在build.gradle文件根節點中加入ide
bootRun {
//開啓頁面熱加載功能
addResources = true
}
二、在build.gradle文件dependencies下加入compile("org.springframework.boot:spring-boot-devtools")
三、開啓IDEA自動編譯
上面的打勾以後,按下面的鍵
windows:ctrl + alt + shift + /
mac: command + alt + shift + /
點擊Registry,勾選compiler.automake.allow.when.app.running
四、配置thymeleaf.cache爲false
thymeleaf:
cache : false
一、通過以上的配置以後,頁面的修改不須要進行編譯,修改立刻就會有效果
二、Java類在修改以後會被從新編譯,可是要注意的是,項目會從新進行部署,你能夠從控制檯看到信息。
三、可是通過測試,並非整個項目從新進行部署,spring應該已經作過處理,因此從新部署的時間很是快,不會影響使用。
四、還有一種實現方案是使用:springloaded 聽說是實現的熱加載而非熱部署,可是我通過實踐以後發如今個人環境下並不能成功,沒有效果,spring官方文檔中還特別對SpringBoot+gradle+idea這樣的環境使用springloaded作出了說明,可是我根據文檔配置以後任然是不行,可能跟我本地環境有關,不過以上的配置能夠知足個人需求,並且部署時間並不長,因此我選擇使用了devtools
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-hotswapping.html
五、使人開心還有,由於實現的是熱部署,因此即便是XML文件的修改,好比MyBatis的SQL修改都會被熱部署,也就是改什麼就立刻有用了。
六、由於當前仍是一個最簡單的項目之下,沒有不少包不少類,我不清楚當項目大了以後部署時間會不會變的特別長,還需進行測試。個人建議是,若是你有不少東西要一次性改,你就老老實實停了項目改就行了。反正不差這點時間。