SpringBoot熱部署加持

CodeSheep發表於2019-01-19

概述

進行SpringBoot的Web開發過程中,我們很多時候經常需要重啟Web伺服器才能保證修改的 原始碼檔案、或者一些諸如xml的配置檔案、以及一些靜態檔案生效,這樣耗時又低效。所謂的熱部署指的是我們不需要重啟Web Server就可以保證各項檔案修改的立即生效。下面便來介紹一下在IDEA中進行SpringBoot的Web開發時如何加入熱部署的支援。

這裡我們是使用 spring-boot-devtools 來幫助完成這個事情,其是一個為開發者服務的模組,可以實現SpringBoot熱部署。其機理就是 spring-boot-devtools 會監聽classpath下的檔案變動,變動儲存生效,其就會立即重啟應用。

注: 本文首發於 My 公眾號 CodeSheep ,可 長按掃描 下面的 小心心 來訂閱 ↓ ↓ ↓

CodeSheep · 程式羊



pom.xml中新增依賴

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
複製程式碼


設定IDEA環境自動編譯

首先在編譯器選項中選中自動編譯工程的選項,如下圖所示,

設定IDEA自動編譯

接下來我們利用快捷鍵:Command + Shift + Alt + / 來調出Registry視窗,然後勾選其中的編譯器自動編譯選項,如下圖所示:

設定IDEA自動編譯



啟動專案並實驗

上面幾個步驟設定完成以後,我們去專案的根目錄下執行命令來啟動SpringBoot應用:

mvn clean spring-boot:run
複製程式碼

此時的效果是隻要我們修改了編輯區的原始碼,儲存之後,應用程式便會自動重啟讓修改生效。



監聽資料夾的變化

上面我們是修改原始碼時的自動熱啟動,除此之外,我們還可以設定 spring-boot-devtools 來監聽某個資料夾的變化,比如我們想監聽某個靜態資料夾下檔案的變化(如html檔案),當其下面的檔案改變的時候能夠重新啟動SpringBoot,那麼我們只要在配置檔案 application.properties 中新增如下配置即可:

spring.devtools.restart.additional-paths = src/main/resources/templates 
複製程式碼

隨後再次實驗,取得的效果和之前一樣,熱啟動便生效了



後記

作者更多的SpringBt實踐文章在此:


如果有興趣,也可以抽點時間看看作者一些關於容器化、微服務化方面的文章:


CodeSheep · 程式羊


相關文章