SpringBoot熱部署加持


概述

進行SpringBoot的Web開發過程當中,咱們不少時候常常須要重啓Web服務器才能保證修改的 源代碼文件、或者一些諸如xml的配置文件、以及一些靜態文件生效,這樣耗時又低效。所謂的熱部署指的是咱們不須要重啓Web Server就能夠保證各項文件修改的當即生效。下面便來介紹一下在IDEA中進行SpringBoot的Web開發時如何加入熱部署的支持。html

這裏咱們是使用 spring-boot-devtools 來幫助完成這個事情,其是一個爲開發者服務的模塊,能夠實現SpringBoot熱部署。其機理就是 spring-boot-devtools 會監聽classpath下的文件變更,變更保存生效,其就會當即重啓應用。spring

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

CodeSheep · 程序羊



pom.xml中添加依賴

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


設置IDEA環境自動編譯

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

設置IDEA自動編譯

接下來咱們利用快捷鍵:Command + Shift + Alt + / 來調出Registry窗口,而後勾選其中的編譯器自動編譯選項,以下圖所示:bash

設置IDEA自動編譯



啓動項目並實驗

上面幾個步驟設置完成之後,咱們去項目的根目錄下執行命令來啓動SpringBoot應用:服務器

mvn clean spring-boot:run
複製代碼

此時的效果是隻要咱們修改了編輯區的源代碼,保存以後,應用程序便會自動重啓讓修改生效。app



監聽文件夾的變化

上面咱們是修改源代碼時的自動熱啓動,除此以外,咱們還能夠設置 spring-boot-devtools 來監聽某個文件夾的變化,好比咱們想監聽某個靜態文件夾下文件的變化(如html文件),當其下面的文件改變的時候可以從新啓動SpringBoot,那麼咱們只要在配置文件 application.properties 中添加以下配置便可:框架

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

隨後再次實驗,取得的效果和以前同樣,熱啓動便生效了spring-boot



後記

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


若是有興趣,也能夠抽點時間看看做者一些關於容器化、微服務化方面的文章:


CodeSheep · 程序羊
相關文章
相關標籤/搜索