IDEA熱更新代碼的兩種方式詳解
說明:本文介紹使用 IDEA 熱更新代碼的兩種方式,可以實現(xiàn)不重啟項目完成代碼更新,以 Java 項目為例。
方式一:系統(tǒng)配置
在旗艦版 IDEA 中,有代碼熱更新的設(shè)置,可以點擊 IDEA 菜單欄,選擇 Help > About,查看版本是否為 Ultimate Edition,該版本是旗艦版。(Ultimate,奧特曼,極限的,終極的意思)

打開啟動項目的配置界面,如下:

在該界面,選擇 Modifily options > On 'Update' action > Update classes and resources,選完記得點 Apply,應(yīng)用并退出

測試一下,啟動項目

試下這個接口

調(diào)用,返回 Hello World!,沒問題

修改返回內(nèi)容如下

修改完,雖不需要重啟項目,但需要點一下這個更新按鈕

看!調(diào)用接口后,返回了更新后的內(nèi)容

方式二:插件
第二種方式,是下載一個插件,叫 JRebel and XRebel,(地址:JRebel and XRebel Plugin for IntelliJ IDEA | JetBrains Marketplace)
必須下載 2022.4.1版本

下載下來后是一個壓縮包文件

通過導(dǎo)入的方式,安裝到 IDEA 中,Install Plugin from Disk...,從本地磁盤中安裝插件

選擇插件壓縮包

安裝后,插件界面點 Apply 應(yīng)用并退出,會彈出這個窗口,選擇 Restart 重啟 IDEA,插件要重啟后才能使用。

重啟后進入插件配置,激活插件,其中注冊地址填 https://jrebel.qekang.com/1e67ec1b-122f-4708-87d0-c1995dc0cdaa,注冊郵箱隨便寫
(我已經(jīng)激活過了,所以沒有 Active 按鈕,沒有注冊應(yīng)該有這個按鈕)

激活成功后,點 Work offline,離線,避免不必要的麻煩

好了,接下來可以使用該插件完成項目熱更新。
選擇你需要啟動的服務(wù),可以看到有兩個帶有插件圖標(biāo)的啟動按鈕,分別表示使用該插件啟動服務(wù),和使用該插件以 debug 方式啟動該服務(wù)

如果你的 IDEA 中沒有這個界面,可按照下述操作展示
(第一步:展示服務(wù)工具欄)

(第二步:添加項目中的服務(wù),如果你的項目是 Spring Boot 項目)

回歸主題,點擊圖標(biāo),啟動項目

還是這個接口

調(diào)用,沒有問題

修改接口返回值,控制臺可見插件更新的日志

調(diào)用接口,接口返回內(nèi)容已更新,代碼完成熱更新

區(qū)別&特點
介紹一下兩種方式的區(qū)別&特點,
(1)系統(tǒng)配置的方式,以下操作是不能熱更新的,也就是說這種方式有局限性
- 只對增加的方法或字段生效,減少的方法或字段不會熱更新;
- 只能增加可見性,不能減少;
- 只能維持已有方法的簽名,而不能修改;
相當(dāng)于只能對增加的修改生效,減少的修改不生效。
(2)插件方式,沒有系統(tǒng)配置方式的局限,另外系統(tǒng)配置的方式,更新完代碼是需要手動刷新的,而插件方式不用,它是定時周期更新的,周期時長可以在配置中設(shè)置,如下:

可想而知的是,時長越短,頻率越高,時效越小,但如果你的項目類比較多,IDEA 肯定會比較卡,參考 Sonar(掃描代碼規(guī)范、漏洞的插件)
總結(jié)
以上就是IDEA熱更新代碼的兩種方式詳解的詳細內(nèi)容,更多關(guān)于IDEA熱更新代碼的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解Maven profile配置管理及激活profile的幾種方式
這篇文章主要介紹了詳解Maven profile配置管理及激活profile的幾種方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Java 集合實現(xiàn)分頁的方法(業(yè)務(wù)代碼實現(xiàn)分頁)
在Java開發(fā)中,有些場景比較復(fù)雜,受限制,不好在sql查詢層面實現(xiàn)分頁,需要在查詢的list結(jié)果后,將list分頁返回,如何實現(xiàn)呢,帶著這個問題一起通過本文學(xué)習(xí)吧2025-02-02
SpringBoot集成Knife4j/Swagger:接口文檔自動生成,告別手寫API文檔
本文將詳細講解SpringBoot如何快速集成Knife4j/Swagger,從環(huán)境搭建、基礎(chǔ)配置、接口注解使用,到進階優(yōu)化,全程附完整代碼示例,感興趣的朋友跟隨小編一起看看吧2026-03-03

