拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

JRebel的下载及激活

JRebel的下载及激活

前言

JRebel是一个用来热部署Java项目的工具,为什么不用idea自带的ctrl + shift + F9?主要是JRebel还可以热部署更丰富的内容。原理上:前者是自定义 ClassLoader + 字节码增强 + 运行时类替换,具体是:自定义类的加载,且对字节码的转换方式也进行了修改,用更有助于直接替换的方式实现对应的字节码,类似于都换成可替换的参数,这样就可以直接替换,最后监听到文件变化后则替换class文件并更新资源文件;后者底层依赖的是Java HotSwap,JVM HotSwap原理是JVM在不会重新加载类,只是替换方法体字节码。

在此从代码结构、框架层、资源文件的角度进行一个简单的对比:

可热部署的类型IDEA Ctrl+Shift+F9JRebel
方法体:就是包含在{}里的方法、逻辑、局部变量,不包括方法的注解、变量的修改之类的,总之还是很多局限的✅✅
类(bean)文件:“新增/删除/修改”类的“方法/字段”,修改参数、返回值、接口、注解等等,大致就是类结构的修改,此外还有新增删除类❌(只有方法体修改的情况才能更新)✅(删除类时部分情况可能需要重启)
ORM:Hibernate、MyBatis-Plus、MyBatis等的Entity / Mapper,包括java、mapper.xml❌✅
配置文件:xml/ properties / yml❌✅(JRebel是大部分支持,但不是全部,除非使用 Spring Cloud或 Spring DevTools)
页面模板:html/vue/Thymeleaf模板❌(如果加了热部署包,那页面文件也可更新)✅(部分框架本身支持)

下载、激活、配置

1、下载

1.1、idea插件里搜jrebel,下载JRebel and XRebel,下载完成后resart IDEA:

2、激活

2.1、打开设置

打开设置→JRebel & XRebel→点击激活按钮:

2.2、贴地址+密码

去这里复制激活地址和密码(该链接下面那个无限试用命令,需要用至少java11执行那个java文件,可以单独下载那个文件再执行,也可以直接用它给的命令执行,这个命令的意思是:把原来的地址、密码等数据清空,变成初始的未使用的状态;然后就是其实用该链接里直接给的的地址和邮箱也可,虽然激活后会显示当日过期,但是第二天会自动刷新,又变成当日过期,也相当于无限使用了,至少我这里是这样的),然后回到idea贴上去点Activate按钮,然后好像会弹出其他窗口,一直点下去就好了,至此激活成功:

3、其他配置

3.1、设置jrebel自动编译

3.2、打开运行时编译,Settings→Advanced Settings, 找到右侧的Compiler选项,勾选允许自动 make,旧版本的idea好像没有这玩意,没有的这个话就不管了不勾了:

3.3、这个可选,setting → Compile → Build project automatically → 选中,另外setting → Compile →Resource patterns可以加上`;!?*.xml`:

4、其他

4.1、有说法说还需要配置下面的第一个图,参考官方解释(具体看下面的第二个图),这个主要是为了关联项目id和其class文件的,其实我这里不勾上也能对应的上,勾上最好吧,就勾上自己需要热部署的项目即可:

4.2、设置离线使用JRebel:现在这块好像没法配置,我点击work online没反应,这个是用来以防更新失效,激活地址可以用前面的地址链接,每日会自动刷新过期时间,或者使用无限试用,所以可以不配置。

4.3、可以在setting→ JRebel & XRebel→Statistics设置手动重新部署应用程序所需的平均时间,及热部署时间。

使用

根据需要,选择使用jrebel的build还是debug(怎么看启动的是不是jrebel,启动后看控制台最上面有没有输出一大堆的jrebel日志即可):

拓展

热部署的方式还可以:HotswapAgent + DCEVM,感兴趣的可以了解下。

返回列表