AOP@Work: AOP工具比较,第2部分-开发环境 - 编程入门网
优势来自 AspectJ 和 AspectWerkz 中连接点参数的静态类型检查。这会带来性能飞跃,因为不需要以反射的形式访 问连接点上下文了。对比之下,JBoss AOP 和 Spring AOP 基于拦截的技术在运 行时有更多的工作要做。因此,在 AWBench 基准评定中可以看到一个趋势: AspectJ 的通知调用最快,然后是 AspectWerkz、JBoss AOP,最后是 Spring AOP。通过比较,AspectJ 的构建时开销最多,AspectWerkz 次之,JBoss AOP 再 次,Spring AOP 没有构建时开销。
拦截的性能利弊 JBoss AOP 和 Spring AOP 使用的拦截和基于代理的 AOP 实现主要的性能利 弊是什么? + 构建时间的内存和时间开销可以忽略不计。 - 运行时的通知调用开销,需要决定切入点匹配。 与任何性能度量标准一样,只能把这些准则当作参考,应当结合应用程序和使 用情况来考虑这些准则。例如,与 Spring AOP 一起使用的典型粗粒度方面一般 不会产生显著的开销。这里介绍的工具没有任何一个有让人无法接受的硬伤。与 以前的一些 AspectJ 和 AspectWerkz 相比,这两种工具进行了更多的优化,其 他工具正在紧紧追赶。AOP 编译器相对来说也是一种新发明,目前从研究社区到 诸如 AspectJ 之类的实现的优化速度也在加快。当发生这些改进的时候,正如我 们期望看到的那样,构建时间会在不断地改进。 IDE 集成 IDE 集成的目标是在熟悉的 IDE 中方便地编写和构建面向方面的程序。要达 到这个目标,必须能够在 IDE 中调用 AOP 编译器或编织器。IDE 支持的另外一 个主要职责是让系统的横切结构易于导航和理解。 在编辑切入点时,不得不运行系统才能查看结果,寻找受影响的连接点是非常 耗时的。与此类似的问题是,开发人员在初次学习 AOP 时经常会问:“怎样才能 知道方面在系统上的效果呢?如果其他人签入的方面会影响正在处理的方面又会 怎样呢?”通过指出什么时候连接点受通知影响,AOP 工具回答了这些问题。这 意味着在处理某个方法的时候,可以看到影响该方法的所有通知。反过来,在编 写方面的时候,可以立即看到这个方面影响了哪个连接点。可以想像一下现代 Java IDE 是怎样提供方便的导航方式的,可以从一个方法导航到所有重写它的方 法。这种面向对象工具支持使得系统的继承结构清晰可见。而 AOP IDE 支持使得 横切结构的效果清晰可见,从而使处理某些方面就像处理对象一样容易。 AOP@Work: AOP工具比较,第2部分-开发环境(5)时间:2011-09-04 IBM Mik Kersten插件比较 每种工具都提供了不同程度的 IDE 支持,在帮助项目选择合适工具的时候, 这点可能很重要。研究实际使用 AspectJ 和 JBoss AOP IDE 插件可以让人对它 支持的特性范围有个概念。下一节将进一步研究工具的 IDE 插件。 图 2 演示了用于 Eclipse 的 AspectJ 开发工具(AJDT)如何在编辑器中呈 现出横切结构,以及如何呈现为了显示方面声明及其效果而扩展的视图。关于这 些特性的详细描述以及更多截屏,请参阅参考资料中的 AJDT 文章。 图 2. 用于 Eclipse 的 AspectJ 开发工具(AJDT)插件 V1.2.0 下面将重点介绍一些 AJDT 插 件的特性;列表编号与图中的标签对应: 包浏览器显示了一些方面和方面声明。切入点和声明出现时有它们自己的图标 ,这些图标指出了通知的种类(例如:before、after 等)。 编辑器支持显示了结构化的注释,允许从某个方面导航到被通知成员。内容辅 助弹出对话框则显示了通知体中所有可以使用的连接点上下文。 文档大纲(Document Outline)表示活动编辑器的横切结构,代表影响对应连 接点的通知和类型间声明。方面成形器(Aspect Visualiser)(在大纲下面,在 这个压缩的截屏中勉强可以见到)显示了整个包中或项目中横切的整体效果,并 突出了受通知影响的源 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |