devtools简介
spring-boot-devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),因为其采用的虚拟机机制,该项重启时很快的
spring-boot-devtools主要有两个类加载器:
base classloader(Base类加载器),加载不改变的class,例如:第三方提供的jar包等
restart classloader (Restart类加载器),加载正在开发的class
因为重启的时候只加载了正在开发的class,没有重新加载第三方的jar包,所以重启会很快
IDEA下配置热部署
2:
3:
Ctrl + Shift + A,输入Registry,选中第一个回车,勾选 compiler.automake.allow.when app.running
4:
pom.xml中引入devtools的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- optional=true,依赖不会传递,该项目依赖devtools;其他依赖本项目的项目需重新引入devtools-->
<optional>true</optional>
</dependency>
5:
pom.xml中添加spring-boot-maven-plugin插件,并且配置<fork>true</fork>(非必须)
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 自己测试,不配置也可实现热部署 -->
<fork>true</fork>
</configuration>
</plugin>
6:
配置application.yml文件(或application.properties)
spring:
thymeleaf:
cache: true # false:关闭缓存,即时刷新
devtools:
restart:
enabled: true # 启用热部署
additional-paths: src/main/java # 设置需重启的目录,目录下的文件改变时会restart