AspectWerkz还支持其他方法调用签名,不过需要多做一些配置工作。
注意,本文将解释最近宣布的AspectJ和AspectWerkz项目合并的意义。
目前,虽然已经用这些工具创建了一些第三方库,但AspectJ和AspectWerkz不包括任何库。
根据表1,可以看出,从用户采用度的角度来说,AspectJ、AspectWerkz、JBossAOP和SpringAOP是领先的工具。
注意,AspectWerkz使用元数据扩展Java编程语言,以便支持AOP,如上述例子所示。
在本次专栏中,介绍了如何用AspectWerkz实现带性能度量增强的基本执行跟踪。
上个月我介绍了如何用AspectWerkz框架实现一个基本的性能跟踪方面(aspect)。
有两种用AspectWerkz实现aspect处理的方法:编译时类修改和运行时类修改。
在本系列文章中,我选择使用AspectWerkz框架,这是一个由BEASystems赞助的开放源代码项目。
幸运的是,AspectWerkz提供了访问中断的pointcut的信息的方便方法。
请注意,规划的@AspectJ语法看起来与AspectWerkz注释的语法非常相似。
在所有的工具中,包括那些没有成熟IDE支持的工具(AspectWerkz和SpringAOP),方面程序的调试都工作得不错。
另外一个运行时的性能优势来自AspectJ和AspectWerkz中连接点参数的静态类型检查。
AspectWerkz的切入点声明是附加到切入点“方法”的字符串值,也可以在XML文件中独立存在。
加入AspectWerkz构建和装入时编织模型的类似扩展也支持热部署。
我将在本专栏中跟踪这一点,但是现在我将坚持使用基本的AspectWerkz框架。
有关AspectWerkz的更多信息,请直接到该项目网站获得完整的文档和无数文章的链接。
这种注解驱动的编程模型最先由AspectWerkz提出,在2005年早期它合并入AspectJ项目。
构建AspectWerkz程序会涉及一个标准的Java构建,然后会涉及到后处理。
而用JBossAOP或AspectWerkz的注释风格,感觉起来就像在现有Java元素上做的附加标签。
AspectWerkz和AspectJ的相似性使得这两种技术可以联合。
AspectWerkz还支持另外一种基于XML的方面声明风格。
合并后的@AspectJ会把AspectJ工具支持的许多优点带到AspectWerkz的注释风格中。
AspectJ5同样也将支持@AspectJ语法,这是AspectJ与AspectWerkz项目合并的结果。
AspectWerkz提供了两种进行AOP声明的途径。
使用AspectWerkz框架进行性能跟踪是第一步。
AspectJ和AspectWerkz提供了一种简洁的引用多个类型的技术(例如Account+表示帐户的所有子类型)。
清单6给出了使用清单5配置时,通过AspectWerkz运行这个程序的输出。
一个包含很多有趣的开放源代码项目的大型知识库,其中包括AspectWerkz和