【RuoYi-SpringBoot3-Pro】:热更新,设置一次,效率翻倍
面试过一位工作多年的 Java 程序员,令我惊讶的是,他在修改完代码后,竟然还在通过“手动点击停止再启动”的方式来验证改动。这种做法每次改动都要浪费几十秒甚至更久,严重影响开发效率。
实际上,Java 生态中早已有成熟的“热更新”技术,可以让你在改完代码的瞬间,无需重启应用即可让修改生效。本文将重点介绍两种主流的解决方案:Spring 官方提供的免费方案 Spring Boot DevTools,以及功能强大的 IDEA JRebel 插件。告别无意义的等待,让开发效率翻倍!
Spring Boot DevTools
在RuoYi-SpringBoot3-Pro中,默认关闭了Spring Boot DevTools 的热部署功能。如需开启需要修改两个地方:
- 在
ruoyi-admin\target\classes\application.yml中开启热部署
# 服务模块
devtools:
restart:
# 热部署开关
enabled: false # 改为 true
- 在
ruoyi-admin\src\main\java\com\ruoyi\RuoYiApplication.java中将下面的代码注释
System.setProperty("spring.devtools.restart.enabled", "false");
IDEA JRebel 插件
安装
在 IDEA 的文件->设置->插件中搜索并安装 JRebel

激活
线上激活
访问 https://jrebel.ckey.run 获取激活地址 http://jrebel.ckey.run:80/{tokenname},tokenname 使用 https://www.guidgen.com 生成
Windows 激活
下载运行 https://github.com/ilanyu/ReverseProxy/releases
Mac 激活
docker pull wangdxing/golang-reverseproxy
# docker pull ilanyu/golang-reverseproxy
# docker pull qierkang/golang-reverseproxy
docker run -d -p 8888:8888 wangdxing/golang-reverseproxy
设置
打开 JRebel 激活页面,填写上面任一方式获取的 URL,邮箱随意填


激活后将 JRebel 设置为 Work offline

方案对比
| 特性 | Spring Boot DevTools | JRebel |
|---|---|---|
| 原理 | 重启 ClassLoader (Restart) | HotSwap (JVM 字节码热替换) |
| 速度 | 快 (数秒),但视项目大小而定 | 极快 (毫秒级),几乎无感 |
| 状态保持 | 会丢失部分内存状态 (Session 等) | 完美保持上下文状态 |
| 配置难度 | 简单 (引入依赖即可) | 中等 (需安装插件、License 服务器) |
| 成本 | 免费 (开源) | 收费 (需破解或购买 License) |
| 适用场景 | 个人开发,小型微服务 | 大型单体应用,历史遗留项目 |