引入

Spring Boot为我们提供了spring-boot-devtools这个库来使应用支持热部署,开启后无需手动重启Spring Boot应用就能实现自动加载,并且加载速度比手动重启快很多,大大提高了开发者的开发效率。

原理

DevTools会监控我们classpath的资源的变化,当classpath资源有变化后,会触发重启。即如果我们改动classpath下的部分代码,编辑器会自动触发编译并替换掉旧的.class字节码文件后,项目检测到有文件变更后会重启SrpringBoot项目。

使用

引入依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>


<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>

配置IDEA

  1. 依次点击PerferencesBuild,Excution,DeploymentCompiler, 勾选Build project automatically , 勾选后点击OK
image-20200927012619217
  1. 双击shift后输入Registry,然后点击Actions栏中的第一个Registry...选项
image-20200927012834959

打开后找到compiler.automake.allow.when.app.running该选项并勾选上,然后点击关闭。

image-20200927013123812

至此,IDEA的配置就算完成了。当我们启动项目后,对部分代码做了改动后,大概等个3-5s后触发dev-tool后将自动更新项目。