SpringBoot2.X (十二):使用 devtools 热部署

当你每修改一个文件,甚至于修改一个符号而不得不重启项目经历漫长等待的时候,是否会感到无比的低效。。。
那么,希望接下来所介绍的东西会对你有所帮助,ok , 言归正传,
根据 官方文档的指引^@^
这里写图片描述
我们这里使用的maven ,所以

1、 在pom.xml 中引入 devtools 模块

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

2、 IntelliJ IDEA 设置
首先,
File ——> Settings ——> Complier ——> 选中 Build project automatically
如下图所示:

这里写图片描述

然后 ,
使用该组合键 Shift+ALT+Ctrl+/ ,选择 Registry
勾选 “complier.automake.allow.when.app.running” 选项
这里写图片描述

如此这般之后,热部署的基本设置就完成了

当然了,默认的这种设置是会默认监听所有的文件修改,但是有时候我们的有些修改又不想它重启,该怎么做呢?

通过官方文档我们了解到
这里写图片描述

/META-INF/maven, /META-INF/resources, /resources, /static, /public, or /templates , 默认情况下,这些文件资源不会自动重新加载
而如果我们想要实现 自定义排除某些文件,可以通过 spring.devtools.restart.exclude 属性进行某些配置从而达成我们的目标

ok,接下来,我们进行一次简单操作
目标 : 使得 properties.yml 文件被修改时不重新加载
操作步骤:
① 在 properties.yml 中增加以下配置:

spring:
  devtools:
    restart:
      exclude: application.yml

② 启动项目 测试 ,修改 properties.yml 已经不会被重新加载了

然而这样依旧会有些问题,比如有时候我们想要让热部署在我们完成全部修改时进行,该怎么办呢?

这里依旧贴出官方说明: 官方文档传送门
这里写图片描述

通过 spring.devtools.restart.trigger-file 配置 监听某个特定的文件,从而实现我们的需求

这里就不展开叙述了,使用方式同上,可以在 application.yml/application.properties 中 添加该属性配置到某个特定的文件,当 需要热部署的时候,在配置的文件中随意进行修改即可实现 指定情况的部署

猜你喜欢

转载自blog.csdn.net/fxbin123/article/details/80518664