概述
進行SpringBoot的Web開發過程中,我們很多時候經常需要重啟Web伺服器才能保證修改的 原始碼檔案、或者一些諸如xml的配置檔案、以及一些靜態檔案生效,這樣耗時又低效。所謂的熱部署指的是我們不需要重啟Web Server就可以保證各項檔案修改的立即生效。下面便來介紹一下在IDEA中進行SpringBoot的Web開發時如何加入熱部署的支援。
這裡我們是使用 spring-boot-devtools
來幫助完成這個事情,其是一個為開發者服務的模組,可以實現SpringBoot熱部署。其機理就是 spring-boot-devtools
會監聽classpath下的檔案變動,變動儲存生效,其就會立即重啟應用。
注: 本文首發於 My 公眾號 CodeSheep ,可 長按 或 掃描 下面的 小心心 來訂閱 ↓ ↓ ↓
pom.xml中新增依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
複製程式碼
設定IDEA環境自動編譯
首先在編譯器選項中選中自動編譯工程的選項,如下圖所示,
接下來我們利用快捷鍵:Command + Shift + Alt + / 來調出Registry視窗,然後勾選其中的編譯器自動編譯選項,如下圖所示:
啟動專案並實驗
上面幾個步驟設定完成以後,我們去專案的根目錄下執行命令來啟動SpringBoot應用:
mvn clean spring-boot:run
複製程式碼
此時的效果是隻要我們修改了編輯區的原始碼,儲存之後,應用程式便會自動重啟讓修改生效。
監聽資料夾的變化
上面我們是修改原始碼時的自動熱啟動,除此之外,我們還可以設定 spring-boot-devtools
來監聽某個資料夾的變化,比如我們想監聽某個靜態資料夾下檔案的變化(如html檔案),當其下面的檔案改變的時候能夠重新啟動SpringBoot,那麼我們只要在配置檔案 application.properties
中新增如下配置即可:
spring.devtools.restart.additional-paths = src/main/resources/templates
複製程式碼
隨後再次實驗,取得的效果和之前一樣,熱啟動便生效了
後記
作者更多的SpringBt實踐文章在此:
- Spring Boot應用監控實戰
- SpringBoot應用部署於外接Tomcat容器
- ElasticSearch搜尋引擎在SpringBt中的實踐
- 初探Kotlin+SpringBoot聯合程式設計
- Spring Boot日誌框架實踐
- SpringBoot優雅編碼之:Lombok加持
如果有興趣,也可以抽點時間看看作者一些關於容器化、微服務化方面的文章:
- 利用K8S技術棧打造個人私有云 連載文章
- 從一份配置清單詳解Nginx伺服器配置
- Docker容器視覺化監控中心搭建
- 利用ELK搭建Docker容器化應用日誌中心
- RPC框架實踐之:Apache Thrift
- RPC框架實踐之:Google gRPC
- 微服務呼叫鏈追蹤中心搭建
- Docker容器跨主機通訊
- Docker Swarm叢集初探
- 高效編寫Dockerfile的幾條準則