概述
進行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
復制代碼
隨后再次實驗,取得的效果和之前一樣,熱啟動便生效了
后記
-
作者更多的原創文章在此,歡迎觀賞
-
My Personal Blog
作者更多的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的幾條準則