科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件JRockit JVM对AOP的支持

JRockit JVM对AOP的支持

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  面向方面编程(Aspect-Oriented Programming,AOP)正在软件社区和企业界中获得强大的发展动力。自从20世纪90年代Xerox引入了AOP之后,AOP经过研究团体、开源社区和企业界的数次推动和革新

作者:中国IT实验室 来源:中国IT实验室 2007年8月24日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

结束语

  在Java社区中已经开始流行使用字节码测试来实现中间件领域中的高级技术,比如AOP或者透明式服务插入。但是,几个关键的限制妨碍了字节码测试,而且它的广泛使用将导致更多的问题,影响可伸缩性和可用性。

  因为字节码测试在某种程度上已经成了在AOP中实现编织的标准方式,所以本文中描述的限制和问题将会妨碍它(可能已经妨碍它了)。

  我们相信,JVM对AOP的支持是这些问题的自然解决方案。我们将要提供一个已经在JRockit JVM中实现的基于订阅的API,它与JVM方法调度组件紧密集成。本系列中的下一篇文章将更详细地讲解这个API,并且解释如何解决每个问题。

其他资料

  • JRockit Technology Center – 第一个具有AOP支持的企业级JVM站点
  • AspectWerkz – 普通Java AOP框架
  • AspectJ – 用Java 实现AOP的事实标准
  • AOSD – 面向方面的软件开发
  • Quick Start Guide to Enterprise AOP with Aspectwerkz 2.0 - David Teare写的一篇文章 (dev2dev,2005年4月)

  前一篇文章介绍了面向方面编程和关注点分离的概念,解释了这种概念如何在方面构造的帮助下增强软件的模块化,以及如何使用它来补充面向对象编程。方面代表模块化的单元,并且由切点(何处)、建议(什么)以及类型间声明(在这个新的方面补充对象模型)组成。有许多技术可以将关注点编织进应用程序,在当今的Java领域中,最常用的技术是字节码测试,在AspectWerkz和AspectJ(从1.1版开始)中实现了这种技术。

  但是,这种AOP实现方式具有几个缺点,本系列的第1篇文章对此进行了详细解释。尽管在字节码测试领域还有很大的发展余地(包括Java 5中的JVMTI/JSR-163测试代理规范和高效字节码操作库,比如ObjectWeb ASM),但字节码测试代价不菲。此外,已经证明,使用字节码测试实现AOP是不完善的。例如,如果不采用非常特殊且效率低下的解决方案,就无法通过切点匹配反射式方法调用或get和set字段。总的来说,所有基于字节码测试的产品都受到字节码测试技术相关问题的影响,而且随着这种技术的普及,问题将逐渐增加。

  所有这些缺点促使JRockit团队提出了JVM对AOP的支持。其目标是尽可能全面地实现当前的AOP语义,同时不把JVM限制在某个特定的面向方面框架的语言细节和编程模型上。

  本文通过具体的代码示例介绍该API,然后描述其好处及未来的发展方向。

我们的动机

  让我们快速地回顾引入JVM的AOP支持的技术动机。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章