實際開發過程中,經常會修改程式碼重啟應用,每次手動重啟既麻煩開發效率又低,所以熱部署對於開發來說顯得十分必要,本文將介紹如何在IntelliJ IDEA(版本2018.2.5)中實現SpringBoot專案熱部署。
本文使用spring-boot-devtools實現的熱部署,按照下面兩個步驟操作完成即可。
1. 修改pom.xml
spring-boot-devtools是一個為開發者服務的一個模組,其中最重要的功能就是熱部署。原理是在發現程式碼有更改之後,重新啟動應用,但是速度比手動停止後再啟動更快。其深層原理是使用了兩個ClassLoader,一個Classloader載入那些不會改變的類(第三方Jar包),另一個ClassLoader載入會更改的類,稱為restart ClassLoader,這樣在有程式碼更改的時候,原來的restart ClassLoader被丟棄,重新建立一個restart ClassLoader,由於需要載入的類相比較少,所以實現了較快的重啟時間。即devtools會監聽classpath下的檔案變動,並且會立即重啟應用(發生在儲存時機)
配置spring-boot-devtools後具體pom.xml檔案內容如下:
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
<!-- 引入熱部署jar包 -->
org.springframework.boot
spring-boot-devtools
<!-- optional=true,依賴不會傳遞,該專案依賴devtools;之後依賴該專案的專案如果想要使用devtools,需要重新引入 -->
true
<!-- 引入熱部署依賴外掛 -->
org.springframework.boot
spring-boot-maven-plugin
<!-- IntelliJ IDEA本地測試去掉fork也生效 -->
true
2. 開啟idea自動編譯及automake功能
(1). Settings --> Compile --> Build project automatically --> 勾選
idea設定自動編譯截圖
(2). CTRL + SHIFT + ALT + / --> 查詢Registry --> 找到並勾選compiler.automake.allow.when.app.running
idea設定compile.automake截圖
上面兩個步驟搞定後,即可在IntelliJ IDEA中實現熱啟動,有任何問題歡迎留言溝通哦~
溫馨提示: 開啟idea自動編譯及automake功能後一定要重啟IntelliJ IDEA
下面的是我的公眾號二維碼圖片,歡迎關注,歡迎留言,一起學習,一起進步。
Java碎碎念公眾號