IDEA效率插件JRebel的使用

JRebel

使用 JRebel 可以在修改代码后,动态重新加载修改的代码,免去了代码工程全量重建、重启的耗时流程,有效地提高开发者的效率。在 IDEA 的插件市场搜索 JRebel for IntelliJ 找到安装即可。

JRebel for IntelliJ 版本:2019.1.4

1、启用自动部署
此处勾选后,当用 JRebel 启动应用时,会自动勾选 Build, Execution, Deployment -> Compiler -> Build project automatically,否则需要自己手动来选中 Build project automatically ,这个是自动构建工程的选项。
IDEA效率插件JRebel的使用_第1张图片

2、生成 rebel.xml 配置
这个配置文件是 JRebel 为当前项目生成的配置,默认生成指向 .../target/classes 路径的 classpath。
IDEA效率插件JRebel的使用_第2张图片

3、运行配置
将下面的两个选项框换成 Update classes and resources ,表示会自动更新变更的类和资源。
IDEA效率插件JRebel的使用_第3张图片

4、运行/Debug
想要通过 JRebel 运行程序,下图两个分别是运行和Debug选型,通过他们来运行应用即可。
运行/Debug

5、效果
代码修改完后,鼠标点击 IDEA 窗口外的任意位置,便会触发类重新加载,此时会打印如下的日志,说明重新加载成功了。
IDEA效率插件JRebel的使用_第4张图片

JRebel VS Devtools

Devtools 的简单使用

如果要使用 spring-boot-devtools ,则需要在 Maven 的 pom 文件增加如下依赖。


    org.springframework.boot
    spring-boot-devtools
    true

spring-boot-devtools 会在类路径上的文件变更时,触发自动重启,而 JRebel 是触发类重新加载,从如下 Devtools 重启的日志也能看出和 JRebel 的一些区别。
IDEA效率插件JRebel的使用_第5张图片

总结

虽然 JRebel 重新加载相比 Devtools 重新启动可能是会更快一些,但是 Devtools 其实也并不慢,它使用了两个类加载器,不会修改的类加载到 Base 类加载器,而正在开发中的类加载到 restart 类加载器。当应用重启时,Devtools 会重启 restart 类加载器,而 Base 类加载器不变,所以相比手工全量重启应用,利用 Devtools 来重启的速度也是很快的。
实际开发中,可以根据需求选择使用 JRebel 还是 Devtools。

你可能感兴趣的:(IDEA效率插件JRebel的使用)