spring-boot-devtools的使用和IDEA的配置
添加pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
devtools热启动原理
- 深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restartClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间
devtools工具包
- devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),
java类文件热部署(类文件修改后不会立即生效),实现对属性文件的热部署。 - devtools可以实现页面热部署(页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现)。
IDEA的配置
idea版本2020.1
当我们修改了类文件后,idea不会自动编译,需要通过ctrl+F9来触发,
如果想要自动生效得修改idea设置,该功能按着个人的喜好来设置,修改类后,当我们窗口切换时候可以看到热部署的发生
-
File-Settings-Compiler-Build Project automatically
-
ctrl + shift + alt + / ,选择Registry,勾上 Compiler autoMake allow when app running