寫在前面的
在日常開發中,代碼更改後要重新啓動應用,以使修改的代碼編譯生效,但是這樣會耗費比較多的工作時間,所以使用熱部署就顯得比較重要了,可以節約很多時間。
一、devtools熱部署的原理
springboot中提供了devtools這個starter,使用devtools插件可以自動應用最新的代碼到程序上,實現熱部署。這個工具的實現是依賴兩個ClassLoader,其中一個ClassLoader用來加載依賴包中的類,這些類通常不會改變,另一個ClassLoader用來加載程序中自己編寫的類,這些類會發生改變。當程序代碼發成變化後,第二個ClassLoader就會重新啓動更新應用程序,實現了應用最新代碼到應用程序。因爲改變的類比較少所以有比較快的加載時間,減少工作時間的浪費。
二、導入依賴配置插件
在pom.xml中導入依賴,並在build配置插件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!--版本號可以自己指定,如果不指定會根據springboot的父版本號應用-->
</dependency>
插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--設置爲true表示應用重啓,默認false-->
<fork>true</fork>
</configuration>
</plugin>
三、編譯器設置
經過以上配置可能還需要以下配置。eclipse是默認開啓自動編譯,所以經過以上配置就可以使用,不過IDEA上默認關閉自動編譯所以使用還需要在把編譯器設置一下,設置過程如下
(1)File(左上角菜單)->Settings..->Build,Execution,Deployment->Compiler裏面有個Build project automatically的選項把前面的勾上
(2)快捷Ctrl+Shift+A 輸入Registry…打開這一項將compiler.automake.allow.when.app.running這一項勾上就可以了(可能需要重啓一次IDEA)
原文地址(個人網站):http://te-amo.site/user/article/info/ARTICLE20180222104208770