javaweb開發提高效率利器JRebel詳解

JRebel用瞭有一段時間瞭,發現確實好用,節省瞭很多不必要的時間,提高瞭開發效率。在這裡記錄一下他的安裝和使用過程,希望能幫助到有需要的人。

官網:https://www.jrebel.com/

一、JRebel簡介

jrebel是國外公司perforce於2007年開發的一款java開發效率工具,旨在幫助java開發人員更快地編寫更好的應用程序。jrebel提供瞭常用的開發IDE如IntelliJ Idea、eclipse、myEclipse、NetBeans等的jrebel插件,可以很方便的在IDE中使用JRebel進行代碼的熱加載,提高開發效率。

jrebel可以幫助我們解決哪些問題?

1、每次修改完java代碼後,都要重啟項目來讓java代碼生效,等待很長時間

2、每次重啟項目電腦CPU都打滿,電腦吃不消

二、JRebel安裝和激活

這裡介紹idea中jRebel插件的安裝和激活。

安裝

打開idea插件瀏覽器:File-》settings-》plugins-》Browse repositories,搜索jrebel,安裝這個【Jrebel and XRebel for IntelliJ】插件,重啟。重啟完後idea右側會有個Jrebel使用向導,愛看不看。

安裝完後的設置

1、打開idea的自動編譯功能:settings-》build-》compiler-》Build project automatically

2、打開idea的【當應用運行期間可以自動編譯的功能】

方式一:ctrl+shift+alt+/  選擇Registry

方式二:ctrl+shift+A 搜索registry,或help-》find action,搜索Registry

激活

激活方式:填寫jrebel的激活url和個人郵箱即可。步驟:settings-》JRebel-》點擊 Change license,填寫完後點擊下面的 Change license 按鈕。

方式一:激活url獲取:直接填寫url即可:https://jrebel.qekang.com/ + UUID,如 https://jrebel.qekang.com/27166483-4ca3-47d9-bc40-dd032ee52aba,UUID可自己生成,也可在線生成連接 https://www.guidgen.com/,一個JRebel license 網站 https://jrebel.qekang.com/

方式二:參考https://www.jb51.net/article/189496.htm

最後別忘瞭點擊 work offline,以離線模式運行。

若是JRebel過期瞭,就按照上面的步驟,再次激活就好瞭。

三、JRebel使用

1、項目初次使用,需要先生成rebel.xml文件

JRebel安裝完成後,idea左側出現JRebel的工具窗口,如下圖所示:

對要進行熱加載的項目,後面打上勾,就會發現項目中多瞭個 rebel.xml 文件,這是JRebel的配置文件,裡面會自動配置JRebel要監控的文件目錄。

如果是jar文件,如springBoot項目, rebel.xml 則出現在項目根文件夾中。如果是war文件,如SSM項目,rebel.xml將出現在WEB-INF / classes文件夾中。2、以JRebel方式啟動

3、修改java代碼測試熱加載

以JRebel方式啟動後,修改java代碼,等上兩三秒,註意看控制臺,當出現 JRebel: Reloading class xxx 字樣的時候,說明JRebel熱加載完成,就可以查看修改後的效果瞭。

如果嫌JRebel的自動熱加載慢,可以ctrl+F9(Build Project)一下,就能立馬熱加載成功。趕緊動手試試吧!

四、 JRebel的熱加載原理

              jrebel是一個基於JVM類加載機制的插件,能自動重新加載修改後的java字節碼文件。因為我們在IDEA中開啟瞭自動編譯功能,所以當java文件發生改動時,會被自動編譯成字節碼文件,此時jrebel監聽到字節碼文件發生瞭改變,就自動的把改動的字節碼文件加載進JVM中,所以我們幾乎可以實時的看到修改後的效果。因為隻是重新加載改動的文件,不用重啟整個項目,所以效率上要遠高於devtools,對於配置文件或xml文件中的修改還是要重啟才行。

熱加載和熱部署的區別:

熱加載:在項目運行狀態下,重新加載修改後的資源(用於日常開發),內存不會被清空,session也有效,但內存消耗較大。

熱部署:在項目運行狀態下,自動重啟部署整個項目(用於項目部署),但會將內存清空,session也將失效。

五、其他熱加載的方式

1、springBoot環境下,可用devTools,但不如JRebel好。

2、以debug模式啟動項目,每次修改完重新ctrl+F9編譯一下,有時候也有效。

推薦閱讀:

    None Found