1. 程式人生 > >IDEA下SpringBoot專案熱部署配置(基於最新的SpringBoot2.0.6)

IDEA下SpringBoot專案熱部署配置(基於最新的SpringBoot2.0.6)

本文要介紹的專案熱部署,我分為IDEA配置和SpringBoot配置

1、IDEA配置

1.1.開啟專案自動編譯

1.2.開啟專案執行時編譯器自動編譯

2、SpringBoot配置

2.1.依賴SpringBoot開發工具starter

SpringBoot提供了一個用於提高開發體驗的類庫叫做devtools,其中包括熱部署(快速重啟)。該技術的深層原理是使用了兩個ClassLoader(類載入器),一個Classloader載入那些不會改變的類(第三方Jar包),另一個ClassLoader載入會更改的類,稱為restart ClassLoader,這樣在有程式碼更改的時候,原來的restart ClassLoader 被丟棄,重新建立一個restart ClassLoader,由於需要載入的類相比較少,所以實現了較快的重啟時間。

引入該類庫需要在pom.xml中新增如下依賴:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
</dependency>

 2.2.build的外掛引入springloaded庫

(該配置主要在eclipse中生效,IDEA不需要)

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <dependencies>
                <!-- spring熱部署 -->
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>springloaded</artifactId>
                    <version>1.2.6.RELEASE</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

2.3.靜態資源目錄排除

有時候在開發期間,修改了java程式碼、xml、properties配置等需要熱部署,但修改js、html等不需要重啟,那麼可以排除監聽部分目錄。在專案的application.properties檔案中新增如下配置:

spring.devtools.restart.enabled=true
spring.devtools.restart.exclude=static/**,templates/**,META-INF/**

@六噸程式碼