STS熱部署,springboot項目中修改代碼不用重新啟動服務


方法如下:

1.在pom文件中引入  devtools  依賴:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
  <!-- optional=true, 依賴不會傳遞, 該項目依賴devtools; 之后依賴boot項目的項目如果想要使用devtools, 需要重新引入 -->
  <optional>true</optional>
</dependency>

2.在application.properties  文件中碼上以下內容:

spring.thymeleaf.cache=true        //緩存(開發時設置為false)
spring.devtools.restart.enabled=true   //開啟
spring.devtools.restart.additional-paths=src/main/java  //監聽目錄(可不設置)

3.原理

devtools如何實現頁面熱部署?

即頁面修改后會立即生效,這個可以直接在application.properties文件中配置spring.thymeleaf.cache=false來實現。

實現類文件熱部署(類文件修改后不會立即生效),實現對屬性文件的熱部署。即devtools會監聽classpath下的文件變動,並且會立即重啟應用(發生在保存時機),注意:因為其采用的虛擬機機制,該項重啟是很快的。

1)base classloader (Base類加載器):加載不改變的Class,例如:第三方提供的jar包。 

2)restart classloader(Restart類加載器):加載正在開發的Class。

為什么重啟很快?

因為重啟的時候只是加載了在開發的Class,沒有重新加載第三方的jar包。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM