近日, 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
评论