最近项目开发的时候,代码发生修改了就要重启一下再看看效果,然后项目启动要一分多钟,感觉效率很慢于是就上网找了些资料自己整理了一下可以使用JRebel进行热部署可以即时看到代码修改后的效果
安装激活Jrebel
方法一:
-
在plugin中找到Jrebel进行下载
-
开启IDEA的自动编译功能
给build project automatically勾上
-
勾选注册表中idea自动编译的功能(可能找不到)
ctrl+shift+alt+/ 选择Registry
找到compiler.automake.allow.when.app.running这行勾上
方法二:
我在IDEA的注册表中没有找到这个无法实现,所以找了下面这种方法成功
下载反向代理:激活软件
我这里选择了windows64.exe这个版本
然后双击exe运行
- 在IDEA中一次点击 File->Settings->JRebel 并找到激活界面
点击active
- 第一行输入:http://127.0.0.1:8888/+UUID
UUID生成工具:UUID生成 - 第二行输入邮箱地址
- 把JRebel设置为offline模式 选择work offline
使用说明
-
项目初次使用,需要先生成rebel.xml文件
JRebel安装完成后,idea左侧出现JRebel的工具窗口,如下图所示:
选中要进行热加载的项目,我这里只是勾选需要修改的项目模块本地运行 -
以JRebel方式启动
-
修改java代码测试热加载
出现 JRebel: Reloading class xxx 的时候,说明JRebel热加载完成
如果JRebel的自动热加载慢,可以按ctrl+F9热加载成功
Jrebel热加载原理
热加载的实现原理主要依赖java的类加载机制,在实现方式可以概括为在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳变掉了,则将类重新载入。
热加载则是在运行时通过重新加载改变类信息,直接改变程序行为。
热部署原理类似,但它是直接重新加载整个应用,这种方式会释放内存,比热加载更加干净彻底,但同时也更费时间