# spring-boot-devtools 热部署
# 原理:
使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。
# pom依赖
<!-- spring-boot-devtools 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 表示依赖不会传递 -->
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
</configuration>
</plugin>
</plugins>
</build>
# application.yml配置
- Thyemleaf模板缓存禁用:
# 模板引擎
thymeleaf:
mode: HTML
encoding: utf-8
# 禁用缓存
cache: false
- 热部署开启及自定义
# 服务模块
devtools:
restart:
# 热部署开关
enabled: true
#禁用日志报告
# log-condition-evaluation-delta: false
#不需要修改触发重启的文件目录
# exclude: static/,public/
#默认配置下还需要在新增的排除目录
# additional-exclude:
#添加需要监视需改文件后重启的路径
# additional-paths:
# Idea设置
File --> Settings --> Build,Execution,Deployment --> Compiler,勾选

- 使用快捷键Crtl+Shift+Alt+/,并打开Registry,勾选图中红框所示


重启项目。至此,修改页面(Idea自动保存)刷新后,即可看到修改的内容。