IDEA效率插件JRebel的使用

2019-08-16 12:27:04来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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 ,这个是自动构建工程的选项。
自动部署

2、生成 rebel.xml 配置
这个配置文件是 JRebel 为当前项目生成的配置,默认生成指向 .../target/classes 路径的 classpath。
生成 rebel.xml

3、运行配置
将下面的两个选项框换成 Update classes and resources ,表示会自动更新变更的类和资源。
运行配置

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

5、效果
代码修改完后,鼠标点击 IDEA 窗口外的任意位置,便会触发类重新加载,此时会打印如下的日志,说明重新加载成功了。
效果

JRebel VS Devtools

Devtools 的简单使用

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

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

spring-boot-devtools 会在类路径上的文件变更时,触发自动重启,而 JRebel 是触发类重新加载,从如下 Devtools 重启的日志也能看出和 JRebel 的一些区别。
Devtools 重启

总结

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


原文链接:https://www.cnblogs.com/bigshark/p/11343541.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:小白之旅21

下一篇:基于Spring注解的上下文初始化过程源码解析(三)