spring boot 热部署 - spring boot hotswap

平时开发spring boot 项目中,如果是联调或者自己自测,那么每次修改代码都需要重启无疑很累,于是想到了热加载,即修改代码后热加载进去,无需重启应用,这无疑加快了开发速度。当然,如果尚处于开发阶段,这是好是坏就需要你自己去考量了。本文主要实现热加载,并给一个开关,这样子便可以在是否需要热加载中切换。

1、我的环境:Manjaro Linux 18.0.4 + idea 2019.1.2

2、添加 spring-boot-devtools 依赖,我是用 maven 管理依赖,所以在 pom.xml 文件的 <dependencies> 节点下加入:

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

3、打开 idea 的 设置,然后在设置里搜索 Compiler,找到左侧的 Bulid project automatically 打钩

4、快捷键 Ctrl+Shift+Alt+/ 然后点击 Registry  或者 点击菜单 Help -> findAction -> 输入 Registry -> 点击第一项

5、找到 complier.automake.allow.when.app.running 并打钩

6、application.properties 里配置

# 热加载
spring.freemarker.cache=false
spring.thymeleaf.cache=false
spring.groovy.template.cache=false
#添加需要restart的目录
spring.devtools.restart.additional-paths=src/main/java
#排除不需要restart的目录
#spring.devtools.restart.exclude=

至此配置结束,你可以顺利的热加载了。

7、取消热加载

在 SpringBootApplication 类里,找到 main 在 SpringApplication.run 前面 插入

System.setProperty("spring.devtools.restart.enabled", "false");

即可,目前热加载我也只是出于探索阶段,到底好不好用,该不该用,有啥缺点和坑一概未知。

 

本博客若无特殊说明则由 full-stack-trip 原创发布
转载请点名出处:全栈之旅 > spring boot 热部署 - spring boot hotswap
本文地址:https://www.kpromise.top/spring-boot-hotswap/

发表评论

电子邮件地址不会被公开。 必填项已用*标注