ideal 下 spring boot 實現(xiàn)熱部署

近來在使用idea做springboot的項目,但是發(fā)現(xiàn)每次修改之后我都需要重新將項目關(guān)閉再開啟,這樣比較繁瑣,發(fā)現(xiàn)通過熱部署的方式讓我們可以一邊修改我們的項目,然后在頁面中直接通過刷新展示出來

spring為開發(fā)者提供了一個名為spring-boot-devtools的模塊來使Spring Boot應用支持熱部署,提高開發(fā)者的開發(fā)效率,無需手動重啟Spring Boot應用。

devtools的原理

深層原理是使用了兩個ClassLoader,一個Classloader加載那些不會改變的類(第三方Jar包),另一個ClassLoader加載會更改的類,稱為restart ClassLoader,這樣在有代碼更改的時候,原來的restart ClassLoader 被丟棄,重新創(chuàng)建一個restart ClassLoader,由于需要加載的類相比較少,所以實現(xiàn)了較快的重啟時間。

這里我沒有把所有的方式都嘗試一遍,只是使用了devtools的方式

第一步、先設(shè)置我們的pom.xml文件,加入依賴:

? ? ? ? <dependency>

? ? ? ? ? ? <groupId>org.springframework.boot</groupId>

? ? ? ? ? ? <artifactId>spring-boot-devtools</artifactId>

? ? ? ? ? ? <optional>true</optional>

? ? ? ? </dependency>


????<plugin>

? ? ? ? ? ? ? ? <groupId>org.springframework.boot</groupId>

? ? ? ? ? ? ? ? <artifactId>spring-boot-maven-plugin</artifactId>

? ? ? ? ? ? ? ? <configuration>

? ? ? ? ? ? ? ? ? ? <!-- 沒有該配置,devtools 不生效 -->

? ? ? ? ? ? ? ? ? ? <fork>true</fork>

? ? ? ? ? ? ? ? ? ? <addResources>true</addResources>

? ? ? ? ? ? ? ? </configuration>

? ? ? ? ? ?</plugin>

第二步、application.yml 中配置 devtools 使生效:

spring:

# 熱部署

? devtools:

restart:

enabled:true

第三步、設(shè)置IDEA的自動編譯:

(1)File-Settings-Compiler勾選 Build Project automatically

(2)快捷鍵 ctrl + shift + alt + /,選擇Registry,勾上 Compiler autoMake allow when app running

這樣我們的熱部署就完成了,可以再我們的項目中修改返回值,或者修改Mapping的value值后,在我們的頁面中刷新試試。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容