© 版权声明:本文为博主原创文章,转载请注明出处
devtools简介
spring-boot-devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),因为其采用的虚拟机机制,该项重启时很快的
spring-boot-devtools主要有两个类加载器:
base classloader(Base类加载器),加载不改变的class,例如:第三方提供的jar包等
restart classloader (Restart类加载器),加载正在开发的class
因为重启的时候只加载了正在开发的class,没有重新加载第三方的jar包,所以重启会很快
IDEA下配置热部署
1. File -->> Settings -->> Build,Execution,Deployment -->> Granle-Android Compiler --> 勾选 Make project automatically(only works while not running / debugging)
2. Ctrl + Shift + A,输入Registry,选中第一个回车,勾选 compiler.automake.allow.when app.running
3. pom.xml中引入devtools的依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <!-- optional=true,依赖不会传递,该项目依赖devtools;其他依赖本项目的项目需重新引入devtools--> <optional>true</optional> </dependency>
4. 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>
5. 配置application.yml文件(或application.properties)
spring:
thymeleaf:
cache: true # false:关闭缓存,即时刷新
devtools:
restart:
enabled: true # 启用热部署
additional-paths: src/main/java # 设置需重启的目录,目录下的文件改变时会restart
6. Chrome可在开发者模式下(快捷键F12:需打开开发者模式才可使用该快捷键),禁用缓存(非必须)
7. 重启项目,进行测试即可
参考: