當前位置: 妍妍網 > 碼農

提升效率神器:手寫一款 Java 熱部署外掛程式

2024-05-15碼農

點選關註公眾號,Java幹貨 及時送達 👇

前言

我們在開發偵錯的過程中,經常在打包和重新開機伺服器中消耗大量的時間,這將浪費我們大量的青春。

這裏介紹一款本人開發的Java遠端熱部署外掛程式HotSeconds(當然也可以本地熱部署),包括HotSecondsServerHotSecondsClient,相對傳統部署來說,效率可以提升百倍。

功能演示

1.熱部署程式碼

包括修改程式碼,新增欄位,新增方法,新增類,打破了原生JDK中Instrument機制只能修改方法體的不足。同時還支持一些常用框架的熱更新,比如Spring新增一個Autowired欄位或者SpringMVC新增一個Controller方法,也是支持熱更新的。

下面演示一個新增SpringMVC欄位和方法的熱部署

2. 熱部署資原始檔

下面演示一個熱部署MyBatis的xml檔,也是右鍵直接熱部署生效

3. 批次熱更新修改的檔

修改了多個檔的情況下,直接開啟熱部署面板,可將修改過的檔熱部署到伺服器,支持按檔修改時間戳熱部署,也可以將版本控制下(Git/SVN等)未送出的檔熱部署

4. 觸發執行遠端函式

無需呼叫遠端Http或者RPC介面,就能直接觸發需要的函式,這對於偵錯來說可是非常方便的,當然也包括在沙箱環境修復臟數據。

直接在函式上右鍵選擇遠端執行函式,即可觸發具體的函式邏輯,這裏分為四種情況,靜態,非靜態,有參數,無參數。

無參數可以直接觸發,如果是非靜態欄位,會彈出當前類的所有物件的選擇框,選擇後觸發。

有參數的情況,會彈出物件選擇框和參數輸入框,輸入選擇後觸發邏輯。

目前參數只支持byte,short,boolean,char,int,double,float,long,Bigdecimal

復雜參數的函式,可以寫一個靜態無參的函式,觸發需要的函式,然後遠端熱部署整個新寫的靜態無參的函式的類即可。

5. 遠端檢視欄位值

包括靜態欄位和非靜態欄位,直接在欄位上右鍵,就能檢視該欄位的值。

非靜態欄位是先彈出顯示當前類的所有物件例項的框,選擇具體的物件後即可獲取該物件的欄位值。

安裝教程

詳見

https://github.com/Liubsyy/HotSecondsIDEA

來源:juejin.cn/post/7307472358515294249


END


看完本文有收獲?請轉發分享給更多人

關註「Java編程鴨」,提升Java技能

關註Java編程鴨微信公眾號,後台回復:碼農大禮包可以獲取最新整理的技術資料一份。涵蓋Java 框架學習、架構師學習等!

文章有幫助的話,在看,轉發吧。

謝謝支持喲 (*^__^*)