點選關註公眾號,Java幹貨 及時送達 👇
前言
我們在開發偵錯的過程中,經常在打包和重新開機伺服器中消耗大量的時間,這將浪費我們大量的青春。
這裏介紹一款本人開發的Java遠端熱部署外掛程式HotSeconds
(當然也可以本地熱部署),包括HotSecondsServer
和HotSecondsClient
,相對傳統部署來說,效率可以提升百倍。
功能演示
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 框架學習、架構師學習等!
文章有幫助的話,在看,轉發吧。
謝謝支持喲 (*^__^*)