热部署
概念:修改完项目代码后不用重启服务器修改后的项目代码就能生效
1.添加热部署依赖
<!--热部署依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>2.5.4</version>
<optional>true</optional>
</dependency>
2.spring-boot-devtools 这一行的spring-boot-devtools会爆红,错误明细是Spring-boot-devTools notfound:30
解决方法
方法一:手动启用热部署
Ctrl+ F9
方法二:自动启用热部署
① Setting
② 在idea中 ,Shift+Ctrl+Alt+/,选择Registry
③ 进入Registry,勾选 complier.automake.allow.when.app.running,点击close
④ 重启idea(必做)
自动启动热部署的激活方式
修改完项目代码之后,需要在前端页面点击某个功能,才能激活启动热部署)
热部署范围配置
在springboot的配置文件中加入一些排除热部署的属性
关闭热部署功能
第一种: 在application.yml文件中配置下列信息
把enabled设置为false即可关闭热部署功能
devtools:
restart:
exclude: static/** , public/** ,config/application.yml
enabled: false
# /** 表示此目录下的所有文件
# config/application.yml 已经具体到哪个目录下的哪个文件
第二种:在优先级别高的地方禁用热部署
既然我们怕别人在优先级别高的地方启动热部署,那我们就在优先级别比较高的地方禁用热部署
首先我们先查看一下加载的优先级:
显然,application.yml配置文件在优先级为3的地方
那么,我们可以在优先级为6的地方禁用热部署功能
在springboot启动类当中输出 System.setProperty("spring.devtools.restart.enabled","false");即可关闭热部署功能
@SpringBootApplication
public class Springboot12HotDisplayApplication {
public static void main(String[] args) {
System.setProperty("spring.devtools.restart.enabled","false");
SpringApplication.run(Springboot12HotDisplayApplication.class, args);
}
}