Spring Boot (配置篇):devtools实现热部署

      初使用SpringBoot时候,是采用的Tomcat的Update class and resources,后来发现SpringBoot 有自带的 热部署工具。和Tomcat热部署类似,只要有修改代码(编译通过的)就会自动重新启动程序(Tomcat),以实现码代码的便捷,提高开发者的开发效率。

spring-boot-devtools简介:

        深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。

在pom.xml加入相关依赖:

Spring Boot (配置篇):devtools实现热部署

Spring Boot (配置篇):devtools实现热部署

设置步骤:

1)打开idea ,File->Settings-> Build-Execution-Deployment -> Compiler

当然,快捷键 Ctrl+Alt+S

勾选 Build(Make) Project Automatically

Spring Boot (配置篇):devtools实现热部署

2)按 Shift+Ctrl+A (windows,mac是 command+shift+A)

将看到弹窗 Enter Action or option name,输入"registry",双击第一项"Registry..." ,会弹出另一个窗口,寻找

compiler.automake.allow.when.app.running

Spring Boot (配置篇):devtools实现热部署

当然,快捷键 Ctrl+Shift+Alt+/

Spring Boot (配置篇):devtools实现热部署

3)重启IDEA

Spring Boot (配置篇):devtools实现热部署

我们启动项目,随便创建/修改一个文件并保存,会发现控制台打印 springboot 重新加载文件的信息。

演示图如下:

Spring Boot (配置篇):devtools实现热部署