javaweb開發(fā)提高效率利器JRebel詳解
JRebel用了有一段時(shí)間了,發(fā)現(xiàn)確實(shí)好用,節(jié)省了很多不必要的時(shí)間,提高了開發(fā)效率。在這里記錄一下他的安裝和使用過程,希望能幫助到有需要的人。
官網(wǎng):https://www.jrebel.com/
一、JRebel簡介
jrebel是國外公司perforce于2007年開發(fā)的一款java開發(fā)效率工具,旨在幫助java開發(fā)人員更快地編寫更好的應(yīng)用程序。jrebel提供了常用的開發(fā)IDE如IntelliJ Idea、eclipse、myEclipse、NetBeans等的jrebel插件,可以很方便的在IDE中使用JRebel進(jìn)行代碼的熱加載,提高開發(fā)效率。
jrebel可以幫助我們解決哪些問題?
1、每次修改完java代碼后,都要重啟項(xiàng)目來讓java代碼生效,等待很長時(shí)間
2、每次重啟項(xiàng)目電腦CPU都打滿,電腦吃不消
二、JRebel安裝和激活
這里介紹idea中jRebel插件的安裝和激活。
安裝
打開idea插件瀏覽器:File-》settings-》plugins-》Browse repositories,搜索jrebel,安裝這個(gè)【Jrebel and XRebel for IntelliJ】插件,重啟。重啟完后idea右側(cè)會(huì)有個(gè)Jrebel使用向?qū)?,愛看不看?/p>
安裝完后的設(shè)置
1、打開idea的自動(dòng)編譯功能:settings-》build-》compiler-》Build project automatically
2、打開idea的【當(dāng)應(yīng)用運(yùn)行期間可以自動(dòng)編譯的功能】
方式一:ctrl+shift+alt+/ 選擇Registry
方式二:ctrl+shift+A 搜索registry,或help-》find action,搜索Registry
激活
激活方式:填寫jrebel的激活url和個(gè)人郵箱即可。步驟:settings-》JRebel-》點(diǎn)擊 Change license,填寫完后點(diǎn)擊下面的 Change license 按鈕。
方式一:激活url獲取:直接填寫url即可:https://jrebel.qekang.com/ + UUID,如 https://jrebel.qekang.com/27166483-4ca3-47d9-bc40-dd032ee52aba,UUID可自己生成,也可在線生成連接 https://www.guidgen.com/,一個(gè)JRebel license 網(wǎng)站 https://jrebel.qekang.com/
最后別忘了點(diǎn)擊 work offline,以離線模式運(yùn)行。
若是JRebel過期了,就按照上面的步驟,再次激活就好了。
三、JRebel使用
1、項(xiàng)目初次使用,需要先生成rebel.xml文件
JRebel安裝完成后,idea左側(cè)出現(xiàn)JRebel的工具窗口,如下圖所示:
對(duì)要進(jìn)行熱加載的項(xiàng)目,后面打上勾,就會(huì)發(fā)現(xiàn)項(xiàng)目中多了個(gè) rebel.xml 文件,這是JRebel的配置文件,里面會(huì)自動(dòng)配置JRebel要監(jiān)控的文件目錄。
如果是jar文件,如springBoot項(xiàng)目, rebel.xml
則出現(xiàn)在項(xiàng)目根文件夾中。如果是war文件,如SSM項(xiàng)目,rebel.xml
將出現(xiàn)在WEB-INF / classes文件夾中。2、以JRebel方式啟動(dòng)
3、修改java代碼測(cè)試熱加載
以JRebel方式啟動(dòng)后,修改java代碼,等上兩三秒,注意看控制臺(tái),當(dāng)出現(xiàn) JRebel: Reloading class xxx 字樣的時(shí)候,說明JRebel熱加載完成,就可以查看修改后的效果了。
如果嫌JRebel的自動(dòng)熱加載慢,可以ctrl+F9(Build Project)一下,就能立馬熱加載成功。趕緊動(dòng)手試試吧!
四、 JRebel的熱加載原理
jrebel是一個(gè)基于JVM類加載機(jī)制的插件,能自動(dòng)重新加載修改后的java字節(jié)碼文件。因?yàn)槲覀冊(cè)贗DEA中開啟了自動(dòng)編譯功能,所以當(dāng)java文件發(fā)生改動(dòng)時(shí),會(huì)被自動(dòng)編譯成字節(jié)碼文件,此時(shí)jrebel監(jiān)聽到字節(jié)碼文件發(fā)生了改變,就自動(dòng)的把改動(dòng)的字節(jié)碼文件加載進(jìn)JVM中,所以我們幾乎可以實(shí)時(shí)的看到修改后的效果。因?yàn)橹皇侵匦录虞d改動(dòng)的文件,不用重啟整個(gè)項(xiàng)目,所以效率上要遠(yuǎn)高于devtools,對(duì)于配置文件或xml文件中的修改還是要重啟才行。
熱加載和熱部署的區(qū)別:
熱加載:在項(xiàng)目運(yùn)行狀態(tài)下,重新加載修改后的資源(用于日常開發(fā)),內(nèi)存不會(huì)被清空,session也有效,但內(nèi)存消耗較大。
熱部署:在項(xiàng)目運(yùn)行狀態(tài)下,自動(dòng)重啟部署整個(gè)項(xiàng)目(用于項(xiàng)目部署),但會(huì)將內(nèi)存清空,session也將失效。
五、其他熱加載的方式
1、springBoot環(huán)境下,可用devTools,但不如JRebel好。
2、以debug模式啟動(dòng)項(xiàng)目,每次修改完重新ctrl+F9編譯一下,有時(shí)候也有效。
相關(guān)文章
Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之字符串暴力匹配
字符串暴力匹配算法是指在一個(gè)長字符串中暴力尋找是否包含某一子串所謂暴力匹配,就是不使用任何其他算法,將兩個(gè)字符串中的字符一一進(jìn)行比對(duì)2022-02-02gradle項(xiàng)目中資源文件的相對(duì)路徑打包技巧必看
這篇文章主要介紹了gradle項(xiàng)目中資源文件的相對(duì)路徑打包技巧必看篇,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11idea中springboot整合mybatis找不到mapper接口的原因分析
這篇文章主要介紹了idea中springboot整合mybatis找不到mapper接口的原因分析及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01背包問題-動(dòng)態(tài)規(guī)劃java實(shí)現(xiàn)的分析與代碼
這篇文章主要給大家介紹了關(guān)于背包問題動(dòng)態(tài)規(guī)劃java實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Spring Boot 如何使用Liquibase 進(jìn)行數(shù)據(jù)庫遷移(操作方法)
在Spring Boot應(yīng)用程序中使用Liquibase進(jìn)行數(shù)據(jù)庫遷移是一種強(qiáng)大的方式來管理數(shù)據(jù)庫模式的變化,本文重點(diǎn)講解如何在Spring Boot應(yīng)用程序中使用Liquibase進(jìn)行數(shù)據(jù)庫遷移,從而更好地管理數(shù)據(jù)庫模式的變化,感興趣的朋友跟隨小編一起看看吧2023-09-09vue 實(shí)現(xiàn)刪除對(duì)象的元素 delete
這篇文章主要介紹了vue 實(shí)現(xiàn)刪除對(duì)象的元素delete,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03