【RuoYi-SpringBoot3-Pro】:热更新,设置一次,效率翻倍

面试过一位工作多年的 Java 程序员,令我惊讶的是,他在修改完代码后,竟然还在通过“手动点击停止再启动”的方式来验证改动。这种做法每次改动都要浪费几十秒甚至更久,严重影响开发效率。

实际上,Java 生态中早已有成熟的“热更新”技术,可以让你在改完代码的瞬间,无需重启应用即可让修改生效。本文将重点介绍两种主流的解决方案:Spring 官方提供的免费方案 Spring Boot DevTools,以及功能强大的 IDEA JRebel 插件。告别无意义的等待,让开发效率翻倍!

Spring Boot DevTools

RuoYi-SpringBoot3-Pro[1]中,默认关闭了Spring Boot DevTools 的热部署功能。如需开启需要修改两个地方:


    
    
    
  # 服务模块
devtools:

  restart:

    # 热部署开关

    enabled:
 false # 改为 true

    
    
    
  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)
适用场景 个人开发,小型微服务 大型单体应用,历史遗留项目

往期教程合集

RuoYi-SpringBoot3-Pro

引用链接

[1] RuoYi-SpringBoot3-Pro: https://github.com/undsky/RuoYi-SpringBoot3-Pro