java

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

Share
Published by
full-stack-trip
Tags: spring-boot

Recent Posts

Android 自定义 View 入门

说来惭愧,工作数年,连基本的自…

4 年 ago

retrofit 同时支持 xml 和 json

retrofit 解析 jso…

4 年 ago

mysql - 存储过程 从入门到放弃

最近有个报表的需求,于是乎用了…

4 年 ago

奶嘴战略 - 你不得不知道的扎心真相(一)

一句:英雄枯骨无人问,戏子家事…

4 年 ago

acme.sh 的简单使用

acme.sh 是纯 shel…

4 年 ago

wrk -更现代化的http压测工具

wrk 是一款更现代化的 ht…

4 年 ago