当我们修改了一个java类的时候,需要在修改后尽快看到效果是否实现,就需要用到热部署。它的原理是在发现代码有更改之后,重新启动应用,所以速度比手动停止后再启动更快。SpringBoot为我们提供了一个非常方便的工具spring-boot-devtools。因为devtools会监听classpath下的文件变动,所以当java类重新编译的时候,devtools会监听到这个变化,然后就会重新启动SpringBoot。这个重启是非常快的一个过程。因为在SpringBoot中有两个类加载器,一个是加载工程外部资源的,如jar包,还有一个类加载器是用来加载本工程的class的。所以在重启SpringBoot的时候只加载本工程的class文件。
pox.xml
在pom.xml中添加devtools工具的依赖,并修改设置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
ctrl+shift+A 查找compiler(编译器) 勾选其中的 build project automatically(自动构建项目)
ctrl+shift+alt+/ 打开 maintenance(维修) 点击Registry(注册) 勾选Compiler.autoMake.allow.when.app.running
这样就可以实现热部署的功能了