1. devtools依赖方式
我们在使用idea运行springboot项目时想要实现热部署,首先需要添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
但是仅此是不行的,因为idea默认没有开启自动编译,所以我们需要进行一些配置:
首先在File–>settings找到compiler,勾选自动编译
注意后面有提示 only works while not running/debugging,所以还需要配置ruuning时也自动编译。需要使用一个快捷键,ctrl+shift+alt+/ ,选择registry
然后找到compiler.automake.allow.when.app.running勾选
到此我们尝试运行项目,看看热部署是否生效。如果还是不生效不要着急,可以在pom文件里增加fork为true
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>true</executable>
<fork>true</fork><!-- 如果没有该配置,热部署的devtools不生效 -->
</configuration>
</plugin>
</plugins>
</build>
到此应该就成功了,当我们修改完文件光标移开时,可以在控制台的输出信息看到springboot开始自动make,热部署也就生效了。
2. springboot的edit配置
这种方式非常简单(其实不算热部署),即我们在修改完文件时,可以手动触发编译update classes and resource
个人更喜欢这种方式,可以在批量修改完文件后,手动触发make。而不是像第一种方法那样每次修改完都自动部署,降低性能,且没必要。