最新版 IDEA 2022.3.2 中配置熱載入工具 DevTools 在SpringBoot開發調試中,如果我每行代碼的修改都需要重啟再調試,可能比較費時間;SpringBoot團隊針對此問題提供了spring-boot-devtools(簡稱devtools)插件,用此插件提升開發調試的效率。 ...
最新版 IDEA 2022.3.2 中配置熱載入工具 DevTools
在SpringBoot開發調試中,如果我每行代碼的修改都需要重啟再調試,可能比較費時間;SpringBoot團隊針對此問題提供了spring-boot-devtools(簡稱devtools)插件,用此插件提升開發調試的效率。
1、DevTools原理
spring-boot-devtools是spring為開發者提供的熱載入工具包。主要原理是使用了兩個ClassLoader類載入器,一個Classloader載入那些不會改變的類(第三方Jar包),另一個ClassLoader載入會發生變化的類,稱為restart ClassLoader,這樣在個人代碼更改的時候,原來的restart ClassLoader 被釋放掉,然後重新創建一個restart ClassLoader,由於需要載入的類相比較少,所以實現了加快應用重啟時間。
2、DevTools配置及使用
2.1 引入DevTools依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- optional等於true,表示該依賴是可選的,不會被依賴傳遞 -->
<optional>true</optional>
</dependency>
2.2 打開IDEA進行全局配置
關閉Idea工程,返回啟動頁進行全局配置。(不然創建新項目都要重新配置一次挺麻煩的)
2.2.1 Build,Execution,Deployment
-> Compiler
,勾選 Build project automatically
2.2.2 Advanced Settings
,勾選 Allow auto-make to start even if developed application is currently running
以上兩步配置完成後,開發中修改類或配置文件,伺服器會自動進行重啟,完成類或配置文件的更新。
3、 使用小技巧
3.1 可修改application.yml文件開啟或關閉devtools,預設開啟
spring:
devtools:
restart:
enabled: true #設置開啟熱部署
3.2 排除一些不需要自動重啟的資源
某些資源在更改時可能不需要觸發重新啟動,可以使用spring.devtools.restart.exclude屬性添加到排除列表。例如:要僅排除/static,/public你可以進行如下配置:
spring:
devtools:
restart:
exclude: "static/**,public/**" ##排除/static,/public
4、後記
Springboot 中的熱部署相信大家用的最多的就是
DevTools
,沒辦法,官推的。同時,devtools 還是有不少缺點的,第一點:devtools 僅局限於Springboot項目,在非Springboot項目中無法使用的;第二點:devtools 功能有限制,方法內的修改可以實現熱部署,但新增的方法或者修改方法參數之後熱部署是不生效的。它與另外一個 IDEA 的熱載入插件JRebel
相比,個人覺得無論是載入速度還是使用便捷,JRebel
都是完勝,JRebel
唯一缺點就是收費 _。
5、傳送門
最新版 IDEA 2022.3.2 熱部署插件 JRebel 安裝註冊完整教程(內附彩蛋)
百度網盤地址:https://pan.baidu.com/s/1Oa6HjzovpoR4l6aHe0V9tQ
密碼:rwgg