热部署

246 阅读1分钟

热部署

概念:修改完项目代码后不用重启服务器修改后的项目代码就能生效

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的配置文件中加入一些排除热部署的属性

img

关闭热部署功能

第一种: 在application.yml文件中配置下列信息

把enabled设置为false即可关闭热部署功能

  devtools:
    restart:
      exclude: static/** , public/** ,config/application.yml
      enabled: false
# /** 表示此目录下的所有文件
# config/application.yml 已经具体到哪个目录下的哪个文件

第二种:在优先级别高的地方禁用热部署

既然我们怕别人在优先级别高的地方启动热部署,那我们就在优先级别比较高的地方禁用热部署

首先我们先查看一下加载的优先级:

img

显然,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);
    }
 
}