基于IDEA的熱部暑
- 在pom中引入devtools
<!-- 熱部署 -->
<!-- devtools可以實現(xiàn)頁面熱部署(即頁面修改后會立即生效,
這個可以直接在application.properties文件中配置spring.thymeleaf.cache=false來實現(xiàn)) -->
<!-- 實現(xiàn)類文件熱部署(類文件修改后不會立即生效),實現(xiàn)對屬性文件的熱部署。 -->
<!-- 即devtools會監(jiān)聽classpath下的文件變動,并且會立即重啟應(yīng)用(發(fā)生在保存時機(jī)),
注意:因為其采用的虛擬機(jī)機(jī)制,該項重啟是很快的 -->
<!-- (1)base classloader (Base類加載器):加載不改變的Class,例如:第三方提供的jar包。 -->
<!-- (2)restart classloader(Restart類加載器):加載正在開發(fā)的Class。 -->
<!-- 為什么重啟很快,因為重啟的時候只是加載了在開發(fā)的Class,沒有重新加載第三方的jar包。 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- optional=true, 依賴不會傳遞, 該項目依賴devtools;
之后依賴boot項目的項目如果想要使用devtools, 需要重新引入 -->
<optional>true</optional>
</dependency>
- 然后在application.properties中進(jìn)行配置
#關(guān)閉緩存, 即時刷新
#spring.freemarker.cache=false
spring.thymeleaf.cache=true
#熱部署生效
spring.devtools.restart.enabled=true
#設(shè)置重啟的目錄,添加那個目錄的文件需要restart
spring.devtools.restart.additional-paths=src/main/java
# 排除那個目錄的文件不需要restart
#spring.devtools.restart.exclude=static/**,public/**
#classpath目錄下的WEB-INF文件夾內(nèi)容修改不重啟
#spring.devtools.restart.exclude=WEB-INF/**
在IDEA的設(shè)置有兩個地方要勾上的
1, 第一個位置: file - settings - compiler

image.png
- 按ctrl+shift+alt+/ 后出現(xiàn)下圖(2.1), 選擇registry 然后在如2.2圖中找到 compiler.automake.allow.when.app.runing 勾上

圖2.1

圖2.2
配置完成 ~