扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年8月24日
关键字:
结束语
在Java社区中已经开始流行使用字节码测试来实现中间件领域中的高级技术,比如AOP或者透明式服务插入。但是,几个关键的限制妨碍了字节码测试,而且它的广泛使用将导致更多的问题,影响可伸缩性和可用性。
因为字节码测试在某种程度上已经成了在AOP中实现编织的标准方式,所以本文中描述的限制和问题将会妨碍它(可能已经妨碍它了)。
我们相信,JVM对AOP的支持是这些问题的自然解决方案。我们将要提供一个已经在JRockit JVM中实现的基于订阅的API,它与JVM方法调度组件紧密集成。本系列中的下一篇文章将更详细地讲解这个API,并且解释如何解决每个问题。
其他资料
前一篇文章介绍了面向方面编程和关注点分离的概念,解释了这种概念如何在方面构造的帮助下增强软件的模块化,以及如何使用它来补充面向对象编程。方面代表模块化的单元,并且由切点(何处)、建议(什么)以及类型间声明(在这个新的方面补充对象模型)组成。有许多技术可以将关注点编织进应用程序,在当今的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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者