Skip to content

代码热加载 ​

这篇解决什么 ​

改完 Java 后不必每次冷启动。工程变大后重启常要一两分钟。下面三种做法按推荐度选用。

单体主类是 ruoyi-office/yudao-server 的 YudaoServerApplication。微服务改各服务自己的 *Application。端口默认 48080。

三种做法 ​

名称说明推荐度
IDEA HotSwapUltimate 专属。Debug 启动后点热加载。社区版没有推荐日常小改
JRebel覆盖面最大,旗舰版和社区版都能装。商业插件改类结构多时用
spring-boot-devtoolsclasspath 变化会重启,整体仍慢不推荐当主力

官方说明见 Spring Boot · Developer Tools。

如何用 IDEA HotSwap ​

  1. 启动项主类填 cn.iocoder.yudao.server.YudaoServerApplication,模块选 yudao-server。
  2. Working directory 设成 ruoyi-office/。
  3. 打开 HotSwap / Update classes and resources。
  4. Debug 启动,不要只点 Run。
  5. 改方法体后点调试栏的热加载。

IDEA 启动项打开热加载

示意图:对应 IDEA Ultimate 的 Spring Boot 启动项。

改完后点热加载

示意图:窗口里应是 YudaoServerApplication,被改模块是 yudao-module-system-server 这类 *-server。

HotSwap 能力窄

通常只能改方法体,或增加方法、字段。不能删成员、收紧可见性、改方法签名。这类改动请重启,或改用 JRebel。

如何用 JRebel ​

到 JetBrains Marketplace · JRebel 装官方插件,用正版许可证激活。然后用 Debug with JRebel 启动,改完同样点热加载。

Mapper XML 热替换需要官方 MyBatis-Plus 扩展插件。

不要用第三方激活

网上的 GUID 激活页、破解包不要用。过期或来路不明的地址会失效,也有安全风险。

扩展时注意 ​

名称说明仓库路径
启动类单体入口ruoyi-office/yudao-server/.../YudaoServerApplication.java
被改模块必须已被 yudao-server 依赖,否则热替换的类不在进程里ruoyi-office/yudao-module-*-server/
前端Vue/TS 走 Vite 热更新,不必用这篇ruoyi-office-vben/apps/web-antd/

改 application.yaml、没有扩展时的 Mapper XML、部分 Spring 代理类,热加载经常不生效,直接重启更省事。多模块要先编译被改的 *-server 再点热加载。带 @RequestMapping 的 Controller 必须已在当前进程的 classpath 里。

配置与操作 ​

在 IDEA 打开热替换,改 *-server 后先编译再加载。yaml、部分 XML 和未进 classpath 的 Controller 仍要重启。前端走 Vite,不用本篇。

开启见 框架层。截图见上文 IDEA。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版