springboot + IDEA 專案熱部署(自動重新整理,免重啟)[轉]
阿新 • • 發佈:2020-07-13
用IDEA做springboot,可以通過熱部署的方式快速展示。
spring為開發者提供了一個spring-boot-devtools模組,使應用支援熱部署,提高開發者效率,無需手動重啟springboot應用。
devtools的原理
深層原理是使用了兩個ClassLoader,一個Classloader載入那些不會改變的類(第三方Jar包),另一個ClassLoader載入會更改的類,稱為restart ClassLoader,這樣在有程式碼更改的時候,原來的restart ClassLoader 被丟棄,重新建立一個restart ClassLoader,由於需要載入的類相比較少,所以實現了較快的重啟時間。
devtools的方式 總的來說,一共需要兩個步驟:
1、設定pom.xml檔案,新增devtools依賴
<!--新增熱部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>true</scope> </dependency>
在<build> 下面<plugins>裡,maven-plugin新增配置
<plugin> <!--熱部署配置--> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--fork:如果沒有該項配置,整個devtools不會起作用--> <fork>true</fork> </configuration> </plugin>
2、設定IDEA的自動編譯:
(1)File-Settings-Compiler 勾選 Build Project automatically
(2)快捷鍵 ctrl + shift + alt + /,選擇Registry,勾上 Compiler autoMake allow when app running
這樣我們的熱部署就完成了。
借鑑: