目录
导入坐标
要开启热部署功能,首先要先在maven的pom配置文件导入一个springboot开发工具的坐标。,坐标如下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
手动激活
在导入坐标后,当我们对代码完成修改后,点击构建项目,便可完成热部署。
自动激活:
如果是手动激活的话,这样还是会很麻烦,我不如直接去重启一下项目,我们需要的是自动激活,那么我们如何自动激活呢?
打开设置
打开设置 - 构建、执行、部署 - 编译器,里面有一个自动编译的选项
接下来按住ctrl++alt+shift+/
打开注册表
找到这一项,并勾选
这样一来,热部署就开启了。自动构建项目是在idea失去焦点(也就是打开其他页面)五秒后才开始执行自动构建的,这种方式很好的避免了,敲一个字母自动构建一次的情况,防止电脑崩溃。这个设计还是很合理的
热部署配置的范围
springboot中以下的目录默认情况下都是不参与热部署的
我们也可以在yml配置文件中来规定,哪些目录和文件不参与热部署
static/**代表static目录下的所有文件均不参与热部署
关闭热部署
热部署仅在开发阶段奏效,因为在实际的上线运行过程中,不可能出现程序在运行时,发生代码改变的情况。因此,热部署仅在开发阶段奏效。
如果我们想要在开发阶段,关闭热部署的功能,只需要在配置文件中添加enable: false即可。
true代表开启,而false代表关闭
但是仅仅在配置文件中,添加 enable: false有时是不生效的,因为一个springboot中可能存在多个配置文件,在其他优先级更高的配置文件中,可能开启了热部署,那么为了避免配置的覆盖,我们在程序开始之前就要为程序添加一个系统级的设置
@SpringBootApplication
public class SSMPApplication {
public static void main(String[] args) {
System.setProperty("spring.devtools.restart.enable","false");
SpringApplication.run(SSMPApplication.class);
}
}
这样就保证了配置不会被覆盖,热部署的功能一定是关闭的