發布時間: 2019-03-20 23:42:17
?SpringBoot的web項目,在每一次修改了java文件或者是resource的時候,都必須去重啟一下項目,這樣的話浪費了很多的時間,實現了熱部署,在每一次作了修改之后,都會自動的重啟
通過使用springloaded進行熱部署,但是些代碼修改了,并不會進行熱部署。
spring-boot-devtools 是一個為開發者服務的一個模塊,其中最重要的功能就是自動應用代碼更改到最新的App上面去。原理是在發現代碼有更改之后,重新啟動應用,但是速度比手動停止后再啟動還要更快,更快指的不是節省出來的手工操作的時間。
其深層原理是使用了兩個ClassLoader,一個Classloader加載那些不會改變的類(第三方Jar包),另一個ClassLoader加載會更改的類,稱為 restart ClassLoader ,這樣在有代碼更改的時候,原來的restart ClassLoader 被丟棄,重新創建一個restart ClassLoader,由于需要加載的類相比較少,所以實現了較快的重啟時間(5秒以內)。
導入必須的依賴:
<!--使用devtools進行熱部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
<!--使用熱部署的插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 如果沒有該項配置devtools不會起作用,即應用不會restart -->
<fork>true</fork>
</configuration>
</plugin>
idea設置
組合鍵:Shift+ALT+Ctrl+/ ,選擇“Registry”,
勾選“complier.automake.allow.when.app.running”
???
上一篇: {HTML5}基礎事件-復合事件
下一篇: {HTML5}基礎事件-簡寫事件