大家知道在项目开发过程中,有时候会改动代码逻辑或者修改数据结构,为了能使改动的代码生效,往往需要重启应用查看改变效果,这样会相当耗费时间。
重启应用其实就是重新编译生成新的Class文件,这个文件里记录着和代码等对应的各种信息,然后Class文件被虚拟机的ClassLoader重新加载。
而热部署正是利用了这个特点,它监听到如果有Class文件改动了,就会创建一个新的ClaassLoader进行加载该文件,经过一系列的过程,最终将改动的结果呈现在我们眼前。
在项目Maven配置中增加devtools
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
在pom.xml
中增加spring-boot-maven-plugin
插件依赖
<!-- 下段配置我们粘贴进聚合父类总工程的pom.xml里-->
<build>
<finalName>你自己的工程名字</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
在设置中,开启自动编译
修改注册表维护中修改下面的配置值
注意:
如果IDEA是2021.2后的版本,则上面的compiler.automake.allow.when.app.running
配置在高级设置中:
重启IDEA后方能生效。