IDEA热更新代码的两种方式详解
作者:何中应
说明:本文介绍使用 IDEA 热更新代码的两种方式,可以实现不重启项目完成代码更新,以 Java 项目为例。
方式一:系统配置
在旗舰版 IDEA 中,有代码热更新的设置,可以点击 IDEA 菜单栏,选择 Help > About
,查看版本是否为 Ultimate Edition
,该版本是旗舰版。(Ultimate,奥特曼,极限的,终极的意思)
打开启动项目的配置界面,如下:
在该界面,选择 Modifily options > On 'Update' action > Update classes and resources
,选完记得点 Apply
,应用并退出
测试一下,启动项目
试下这个接口
调用,返回 Hello World!
,没问题
修改返回内容如下
修改完,虽不需要重启项目,但需要点一下这个更新按钮
看!调用接口后,返回了更新后的内容
方式二:插件
第二种方式,是下载一个插件,叫 JRebel and XRebel,(地址:JRebel and XRebel Plugin for IntelliJ IDEA | JetBrains Marketplace)
必须下载 2022.4.1版本
下载下来后是一个压缩包文件
通过导入的方式,安装到 IDEA 中,Install Plugin from Disk...
,从本地磁盘中安装插件
选择插件压缩包
安装后,插件界面点 Apply
应用并退出,会弹出这个窗口,选择 Restart
重启 IDEA,插件要重启后才能使用。
重启后进入插件配置,激活插件,其中注册地址填 https://jrebel.qekang.com/1e67ec1b-122f-4708-87d0-c1995dc0cdaa
,注册邮箱随便写
(我已经激活过了,所以没有 Active
按钮,没有注册应该有这个按钮)
激活成功后,点 Work offline
,离线,避免不必要的麻烦
好了,接下来可以使用该插件完成项目热更新。
选择你需要启动的服务,可以看到有两个带有插件图标的启动按钮,分别表示使用该插件启动服务
,和使用该插件以 debug 方式启动该服务
如果你的 IDEA 中没有这个界面,可按照下述操作展示
(第一步:展示服务工具栏)
(第二步:添加项目中的服务,如果你的项目是 Spring Boot 项目)
回归主题,点击图标,启动项目
还是这个接口
调用,没有问题
修改接口返回值,控制台可见插件更新的日志
调用接口,接口返回内容已更新,代码完成热更新
区别&特点
介绍一下两种方式的区别&特点,
(1)系统配置的方式,以下操作是不能热更新的,也就是说这种方式有局限性
- 只对增加的方法或字段生效,减少的方法或字段不会热更新;
- 只能增加可见性,不能减少;
- 只能维持已有方法的签名,而不能修改;
相当于只能对增加的修改生效,减少的修改不生效。
(2)插件方式,没有系统配置方式的局限,另外系统配置的方式,更新完代码是需要手动刷新的,而插件方式不用,它是定时周期更新的,周期时长可以在配置中设置,如下:
可想而知的是,时长越短,频率越高,时效越小,但如果你的项目类比较多,IDEA 肯定会比较卡,参考 Sonar(扫描代码规范、漏洞的插件)
总结
以上就是IDEA热更新代码的两种方式详解的详细内容,更多关于IDEA热更新代码的资料请关注脚本之家其它相关文章!