JRebel 4.0 发布——Instrumentation/HotSwap 集成

  • Kostis Kapelonis
  • 张龙

2011 年 7 月 11 日

话题:Java语言 & 开发

近日,ZeroTurnaround 发布了新版的 JRebel,该 JVM 插件可以实现即时代码变更,同时无需完全的重新部署。

Rebel 旨在解放 Java 开发者,通过提供类似于 Hotswap 的解决方案(但却没有 Hotswap 的诸多缺陷)降低冗长的重新部署时间。它还考虑到了现代 Web 应用中除了 Java 文件的其他资源的重新加载问题。InfoQ 有幸采访到了 ZeroTurnaround 的 CEO Jevgeni Kabanov以深入了解该新版本。

InfoQ:新版所用的基本的重新加载机制与 JRebel 3.0 一样么,还是有较大的变化?

底层机制有了较大的变化。主要的变化是让 LiveRebel 的运行只消耗 3% 的性能并且能够处理好并发的重新加载的安全问题,但 JRebel 也从这些特性中受益无穷,比如说“-noverify”标志就没必要了,同时在不久的将来,调试体验等特性也会得到改进。

与 JRebel 3 不同,JRebel 4 完全拥抱Java 5+ 的 instrumentation 服务。这也是其他几个 JVM 级别产品所用的解决方案。

InfoQ:JRebel 4 是如何使用 Instrumentation API 的?这是否意味着 JRebel 只能用于 Java 5 呢?

JRebel 过去兼容于 Java 1.4,现在也是,因此它并不是严格依赖于 Instrumentation API 的。然而在 JRebel 4.0 中,如果能够减少性能损耗和简化操作时,我们就会利用 Instrumentation API。

该版本新增的特性是可以即时重新加载 EJB 组件并且通过 @EJB 注解注入新的 Bean,此外还增加了对匿名类更好的支持。JRebel 插件的数量也增加了不少,目的在于涵盖当今流行的几个框架,包括 Seam 2.x。

最后,大家可以使用这个Eclipse 插件将 JRebel 集成到 IDE 中。

查看英文原文:JRebel 4.0 Release - Instrumentation/HotSwap Integration

Java语言 & 开发