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

往期教程合集

RuoYi-SpringBoot3-Pro

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐