© 版权声明:本文为博主原创文章,转载请注明出处html
devtools简介 java
spring-boot-devtools会监听classpath下的文件变更,而且会当即重启应用(发生在保存时机),由于其采用的虚拟机机制,该项重启时很快的spring
spring-boot-devtools主要有两个类加载器:缓存
base classloader(Base类加载器),加载不改变的class,例如:第三方提供的jar包等app
restart classloader (Restart类加载器),加载正在开发的classmaven
由于重启的时候只加载了正在开发的class,没有从新加载第三方的jar包,因此重启会很快ide
IDEA下配置热部署spring-boot
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.runningui
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. 重启项目,进行测试便可
参考: