SpringBoot开启热更新
在 Spring Boot 中实现热更新(热部署)可以显著提升开发效率,以下是几种主流的实现方案及详细配置步骤
一、Spring Boot DevTools(官方推荐)
推荐指数:★★★★★
原理:通过类加载器隔离机制实现快速应用重启
配置步骤:
添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>IDEA 配置:
Settings → Build, Execution, Deployment → Compiler
:
✅ 勾选Build project automatically
(自动编译)Settings → Advanced Settings
(高级设置):
✅ 勾选Allow auto-make to start even if developed application is currently running
触发更新:
- 修改 Java 代码后按
Ctrl + F9
(手动触发编译) - 修改静态资源(HTML/CSS/JS)会自动立即生效
- 修改 Java 代码后按
高级配置(可选):
# application.properties
devtools:
add-properties:
restart:
enabled: true #设置开启热部署
additional-paths: src/main/java #重启目录
exclude: WEB-INF/**
二、JRebel(商业方案)
推荐指数:★★★★☆
优势:瞬时热更新,无需重启,支持更多框架
使用场景:大型项目或需要极致热部署体验
安装插件:
- IDEA:
Plugins 市场搜索 JRebel 安装
- IDEA:
激活授权:
- 教育用户可申请免费授权
- 或使用企业许可证
启用方式:
- 启动时选择
Run with JRebel
替代常规启动 - 修改代码后直接保存即可生效
- 启动时选择
三、IDEA 原生热加载
推荐指数:★★★☆☆
适用场景:简单修改验证(字段/日志等)
开启配置:
Settings → Build, Execution, Deployment → Debugger
:
✅ 勾选HotSwap: Reload classes after compilation
触发方式:
- 修改代码后按
Ctrl + F9
编译 - 通过
Debug模式
运行时,自动重载变更的类
- 修改代码后按
限制:无法修改方法签名/类结构等重大变更
四、Spring Loaded(第三方方案)
推荐指数:★★★☆☆
配置方式:
<build> |
启动命令:
mvn spring-boot:run |
▶️ 效果验证
修改以下代码测试热部署:
|
访问 http://localhost:8080/test
观察是否立即生效
⚠️ 常见问题排查
修改不生效:
- 检查是否在
Debug 模式
下运行 - 确认 IDEA 开启了自动编译(部分版本需手动配置)
- 查看控制台是否有
Restarting...
日志输出
- 检查是否在
静态资源未更新:
- 清理浏览器缓存
- 确认资源文件位于
src/main/resources/static
类加载异常:
- 重大结构修改仍需冷启动
- 尝试使用
Build → Rebuild Project
五、生产环境警告
❗ 重要:所有热部署工具(包括 DevTools)都 不能用于生产环境!务必确保生产部署时已移除相关依赖。
根据项目需求选择最适合的方案,一般推荐优先使用 DevTools + IDEA 原生热加载的组合,兼顾便捷性和稳定性。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Lanke!
评论