簡述
熱部署就是在服務器運行時重新部署項目,——生產環境
熱加載即在在運行時重新加載class,從而升級應用。——開發環境
原理
熱加載的實現原理主要依賴java的類加載機制,在實現方式可以概括爲在容器啓動的時候起一條後臺線程,定時的檢測類文件的時間戳變化,如果類的時間戳變掉了,則將類重新載入。
對比反射機制,反射是在運行時獲取類信息,通過動態的調用來改變程序行爲;
熱加載則是在運行時通過重新加載改變類信息,直接改變程序行爲。
熱部署原理類似,但它是直接重新加載整個應用,這種方式會釋放內存,比熱加載更加乾淨徹底,但同時也更費時間。
實現方式:
1.使用springloaded-1.2.8.RELEASE.jar
2.使用spring-boot-devtools
方法一:
- 首先下載Springloaded的Jar包
放到本地磁盤某目錄下,記得位置。下載地址: springloaded - 修改configration ,下拉籃筐位置,點擊 edit configration
- vm options: -javaagent:D:\springloaded-1.2.8.RELEASE.jar -noverify
方法二:
在pom 文件加上依賴包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
加上:
<configuration> <fork>true</fork> </configuration> ,可重新部署
如果只是引入jar包,則可以實現熱加載
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--<dependencies>
<!– spring熱部署 –>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.6.RELEASE</version>
</dependency>
</dependencies>-->
<configuration>
<fork>true</fork>
</configuration>
</plugin>
後續步驟一樣就行:
在設置中打開自動編譯
左上角File->Settings->Build,Execution,Deployment->Compiler,選中Build project automatically
打開運行時編譯
按快捷鍵 Shift+Ctrl+Alt+/ ,點擊 Registry