IDEA下SpringBoot專案熱部署配置(基於最新的SpringBoot2.0.6)
阿新 • • 發佈:2019-02-17
本文要介紹的專案熱部署,我分為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/**
@六噸程式碼