背景:如果不使用熱部署形式開發,每次修改java代碼將要重啓服務,浪費時間,影響開發效率。下面寫個文章對熱部署開發總結一下。
進入正題===開啓熱部署開發步驟:
1、引入maven依賴
<!-- 熱部署模塊 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 這個需要爲 true 熱部署纔有效 -->
</dependency>
2、檢查編譯工具是否開啓自動編譯功能,IDEA默認沒有開啓,打開setting,找到compiler勾選自動編譯
3、在application.properties/yml裏禁用模板引擎緩存
#禁用模版引擎緩存
spring.thymeleaf.cache=false
4、配置好上面兩步後,項目還是不能自動進行熱部署或自動編譯,原因maven未對項目進行編譯到target相應的目錄中。則進行最後一個操作
ctrl+shift+alt+/打開,進入registry,勾選此選項
5、如果想要對指定目錄進行熱部署,提高效率,則
#添加那個目錄的文件需要restart
spring.devtools.restart.additional-paths=src/main/java
#排除那個目錄的文件不需要restart
spring.devtools.restart.exclude=static/**,public/**
此外說明:
默認情況下,/META-INF/maven,/META-INF/resources,/resources,/static,/templates,/public這些文件夾下的文件修改不會使應用重啓,但是會重新加載(devtools內嵌了一個LiveReload Server,當資源發生改變時,瀏覽器刷新)