一、作用
防止改变一个模块中的数据,使得所有模块都编译
造成启动变得很慢
二、实现步骤
1、导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 防止将devtools依赖传递到其他模块中 -->
</dependency>
2、设置(setting->compile->bui……)
3、快捷键(ctrl+shift+a ----输入registry ---- 勾选compile-automake)
4、在application.properties中配置spring.devtools.restart.enabled=false
spring.thymeleaf.cache=false
三、使用:修改代码按ctrl+f9即可
四、原理
其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),
另一个ClassLoader加载会更改的类,称为 restart ClassLoader
这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,
由于需要加载的类相比较少,所以实现了较快的重启时间(5秒以内)