场景:目前的Springboot,当发生了任何修改之后,必须关闭后再启动Application类才能够生效,显得略微麻烦。 Springboot提供了热部署的方式,当发现任何类发生了改变,马上通过JVM类加载的方式,加载最新的类到虚拟机中。 这样就不需要重新启动也能看到修改后的效果了
1、pom.xml
依赖:
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>
插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 没有该配置,devtools 不生效 -->
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
2、以上配置热部署可能还是不生效,需要对idea进行设置
(1)、找到 settings —>compiler —>勾选Build project automatically
(2)、ctrl + shift + A, 选择第一个Registry,勾上 Compiler autoMake allow when app running
热部署无效问题已解决。
然后随便修改一下代码, 就会如图所示观察到控制台的自动重启现象;
总结:这里的快捷操作也因时因人为异,不是什么时候自动编译都好,有时候不希望实时编译的时候,这样的快捷方式反而成了困扰,所以,使用ctrl+s 和ctrl+F9复合操作也不失是一种好的选择。