SpringBoot2.1.5 (21)---使用 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 中 添加该属性配置到某个特定的文件,当 需要热部署的时候,在配置的文件中随意进行修改即可实现 指定情况的部署