平时开发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");
即可,目前热加载我也只是出于探索阶段,到底好不好用,该不该用,有啥缺点和坑一概未知。