文章目錄
-
-
- 一.描述
-
- 1.引子
- 2.JRebel的熱加載原理
- 3.熱加載和熱部署的差別
- 二.IDEA安裝插件的兩種方式
-
- 1.線上安裝
- 2.下載下傳安裝包離線安裝
- 三.安裝并激活JRebel步驟
- 四.項目部署
-
- 生成rebel.xml檔案
- 1.tomcat項目
- 2.springBoot項目
- 3.項目的啟動與運作效果
- 五.其他熱加載的方式
-
一.描述
1.引子
- IDEA上本身是不支援熱加載的的,一般更新了 Java 檔案後要手動重新開機 Tomcat 伺服器,才能生效,浪費不少時間。目前對于idea熱加載最好的解決方案就是
,這樣不論是更新 class 類還是更新 Spring 配置檔案都能做到立馬生效,大大提高開發效率。安裝JRebel插件
- JRebel插件是需要收費使用的,雖然插件提供了14天的試用(擷取14天試用資格請點選這裡
并且試用資訊的填寫也是随便填上虛假資訊即可,但是隻有一次試用機會,就是說試用期過了就不能再通過試用的方法繼續使用插件了,是以對于JRebel插件的破解還是很有必要的。https://zeroturnaround.com/software/JRebel/trial/
- JRebel是一款JAVA虛拟機插件,它使得JAVA程式員能在不進行重部署的情況下,即時看到代碼的改變對一個應用程式帶來的影響
本人的IDEA版本為
IntelliJ IDEA 2018.3 x64
,但是版本不同安裝jrebel的插件的原理是一樣的
2.JRebel的熱加載原理
jrebel是一個基于JVM類加載機制的插件,能自動重新加載修改後的java位元組碼檔案
。因為我們在
IDEA中開啟了自動編譯功能
,是以當java檔案發生改動時,會被自動編譯成位元組碼檔案,此時jrebel監聽到位元組碼檔案發生了改變,就自動的把改動的位元組碼檔案加載進JVM中,是以我們幾乎可以實時的看到修改後的效果。因為隻是重新加載改動的檔案,不用重新開機整個項目,是以效率上要遠高于
devtools
,對于
配置檔案
或
xml檔案
中的修改還是要
重新開機才行
。
3.熱加載和熱部署的差別
- 熱加載:在項目運作狀态下,重新加載修改後的資源(用于日常開發),
記憶體不會被清空,session也有效,但記憶體消耗較大。
- 熱部署:在項目運作狀态下,
自動重新開機部署整個項目(用于項目部署),但會将記憶體清空,session也将失效。
二.IDEA安裝插件的兩種方式
1.線上安裝
進入
setting->Plugins->Marketplace
搜尋需要安裝的插件
2.下載下傳安裝包離線安裝
有的插件下載下傳需要VPN,導緻下載下傳很慢,我們可以通過官網下載下傳安裝包,通過本地安裝包進行安裝
IDEA官網位址
https://plugins.jetbrains.com/
不管是線上安裝還是離線安裝後都會在
installed
顯示出安裝的插件
三.安裝并激活JRebel步驟
安裝前的檢查工作
- 檢查是否打開idea的自動編譯功能:settings->build->compiler->Build project automatically
- 檢查是否打開idea的【當應用運作期間可以自動編譯的功能】
- 方式一:ctrl+shift+alt+/ 選擇Registry
- 方式二:ctrl+shift+A 搜尋registry,或help-》find action,搜尋Registry
- 在IDEA中離線安裝Jrebel
- 進入IDEA官網下載下傳jrebel離線包
https://plugins.jetbrains.com/
- 在IDEA中一次點選
找到要jrebel的壓縮包, 如果File->Settings->Plugins->Install Plugin form Disk
nstalled
裡面有
JRebel表示安裝成功.
- 安裝好之後重新開機IDEA
- 安裝成功
- 進入IDEA官網下載下傳jrebel離線包
- 破解JRebel
-
JRebel并非免費的插件,需要激活之後才能使用。
首先到github上去下載下傳一個
反向代理軟體
,我下載下傳的是windows x64版本。
位址: https://github.com/ilanyu/ReverseProxy/releases/tag/v1.0
下載下傳版本:ReverseProxy_windows_amd64.exe
下載下傳内容如下:
- 打開此軟體後會将本地的80端口,代理到 IDEA 的
上 (一定要打開,否則無法激活!!!)http://idea.lanyus.com:80
并找到激活界面,點選File->Settings->JRebel
進入的激活界面 4. 選擇change liense
中的JRebel activated
connect to online licensing service
- 第一行輸入
http://127.0.0.1:8888/d3545f42-7b88-4a77-a2da-5242c46d4bc2
- 第二行輸入正确的郵箱格式,例如:
提示:[email protected]
d3545f42-7b88-4a77-a2da-5242c46d4bc2
為UUID,可以自己生成,并且必須是UUID才能通過驗證
UUID生成網站: https://www.guidgen.com/ , 用于拼接到 http://127.0.0.1:8888/ 後面
- 再點選以下
按鈕驗證激活change liense
- 激活成功
- JRebel設定為offline(離線)模式 點一下
work offline
- 設定離線模式成功,如果離線模式到期。可以打開破解軟體,再點選
即可重新整理離線時間renew offline seat
- 設定離線模式成功,如果離線模式到期。可以打開破解軟體,再點選
-
四.項目部署
生成rebel.xml檔案
- 項目初次使用,需要先生成rebel.xml檔案
- 對要進行熱加載的項目,後面打上勾,就會發現項目中多了個
檔案,這是JRebel的配置檔案,裡面會自動配置JRebel要監控的檔案目錄。rebel.xml
- 如果是
檔案,如jar
, rebel.xml 則出現在springBoot項目
中。項目根檔案夾
- 如果是
檔案,如war
,rebel.xml将出現在SSM項目
中。WEB-INF / classes檔案夾
- 如果是
1.tomcat項目
2.springBoot項目
- 項目初次使用,需要先生成rebel.xml檔案
3.項目的啟動與運作效果
- 普通web項目與Spring boot的啟動方式一緻
- 運作效果
- 啟動時會輸出離線資訊
- 修改檔案時會輸出reloading資訊
- 控制台當出現
字樣的時候,說明JRebel熱加載完成,就可以檢視修改後的效果了。JRebel: Reloading class xxx
- 如果嫌JRebel的自動熱加載慢,可以
一下,觸發熱加載,就能立馬熱加載成功。趕緊動手試試吧!ctrl+F9(Build Project)
五.其他熱加載的方式
- springBoot環境下,可用
,但不如JRebel好。devTools
- 以debug模式啟動項目,每次修改完重新
編譯一下,有時候也有效。ctrl+F9