springboot實現熱部署-idea
阿新 • • 發佈:2018-11-02
spring boot實現熱部署
說明:使用spring boot開發web專案,一旦修改了介面,即使是很小的修改,也需要重新啟動應用,所以spring給我們開發者提供了一個模組(spring-boot-devtools)來支援熱部署,使我們在改變程式碼時無需手動重啟應用
原理:
springboot 重啟是 reload 重啟,通過監控 classpath 的變化,如果 classpath 中的檔案發生變化,即觸發重啟,springboot 通過兩個 classpath 來完成 reload,一個 basic classloader 中載入不變的類(第三方Jar包),一個 resatrt classloader 載入 classpath 中的類,重啟的時候,restart classloader 中的類丟棄重新載入
引入依賴:
<!--實現熱部署的核心依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!--web開發的核心依賴-->
<dependency >
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--實現test測試的核心依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId> spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--底下三行必須加上,否則熱部署不起作用-->
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
使用:
當新增以上資源後,idea預設是不會自動編譯的,需要我們自己手動編譯,快捷鍵 ctrl+F9,可以重新編譯