文章目录
- 一.描述
- 1.引子
- 2.JRebel的热加载原理
- 3.热加载和热部署的区别
- 二.IDEA安装插件的两种方式
- 1.在线安装
- 2.下载安装包离线安装
- 三.安装并激活JRebel步骤
- 四.项目部署
- 生成rebel.xml文件
- 1.tomcat项目
- 2.springBoot项目
- 3.项目的启动与运行效果
- 五.其他热加载的方式
一.描述
1.引子
- IDEA上本身是不支持热加载的的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费不少时间。目前对于idea热加载最好的解决方案就是
安装JRebel插件
,这样不论是更新 class 类还是更新 Spring 配置文件都能做到立马生效,大大提高开发效率。 - JRebel插件是需要收费使用的,虽然插件提供了14天的试用(获取14天试用资格请点击这里
https://zeroturnaround.com/software/JRebel/trial/
并且试用信息的填写也是随便填上虚假信息即可,但是只有一次试用机会,就是说试用期过了就不能再通过试用的方法继续使用插件了,所以对于JRebel插件的破解还是很有必要的。 - 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.下载安装包离线安装
我们可以通过官网下载安装包,通过本地安装包进行安装
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中一次点击
File->Settings->Plugins->Install Plugin form Disk
找到要jrebel的压缩包, 如果nstalled
里面有
JRebel表示安装成功. - 安装好之后重启IDEA
- 安装成功
- 破解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
上 (一定要打开,否则无法激活!!!)
3.在IDEA中一次点击 File->Settings->JRebel
并找到激活界面,点击change liense
进入的激活界面
4. 选择JRebel activated
中的 connect to online licensing service
- 第一行输入
http://127.0.0.1:8888/d3545f42-7b88-4a77-a2da-5242c46d4bc2
- 第二行输入正确的邮箱格式,例如:
test@123.com
提示: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文件
- 对要进行热加载的项目,后面打上勾,就会发现项目中多了个
rebel.xml
文件,这是JRebel的配置文件,里面会自动配置JRebel要监控的文件目录。
- 如果是
jar
文件,如springBoot项目
, rebel.xml 则出现在项目根文件夹
中。 - 如果是
war
文件,如SSM项目
,rebel.xml将出现在WEB-INF / classes文件夹
中。
1.tomcat项目
2.springBoot项目
- 项目初次使用,需要先生成rebel.xml文件
3.项目的启动与运行效果
- 普通web项目与Spring boot的启动方式一致
- 运行效果
- 启动时会输出离线信息
- 修改文件时会输出reloading信息
- 控制台当出现
JRebel: Reloading class xxx
字样的时候,说明JRebel热加载完成,就可以查看修改后的效果了。- 如果嫌JRebel的自动热加载慢,可以
ctrl+F9(Build Project)
一下,触发热加载,就能立马热加载成功。赶紧动手试试吧!
五.其他热加载的方式
- springBoot环境下,可用
devTools
,但不如JRebel好。 - 以debug模式启动项目,每次修改完重新
ctrl+F9
编译一下,有时候也有效。