AOP@Work:介绍AspectJ 5 - AspectJ中的Java 5支持和其他新特性抢鲜看 - 编程入门网
也给出了 AspectJ 5 能做什么的提示。但是在 AspectJ 5 中除了 注释匹配之外还有许多东西,在下一节中会看到。
AOP@Work:介绍AspectJ 5 - AspectJ中的Java 5支持和其他新特性抢鲜看(5)时间:2011-09-04 IBM Adrian Colyer连接点匹配和注释 在 AOP@Work 系列以前的文章中,介绍了注释、元数据和面向方面编程之间的 关系 (请参阅 参考资料 一节中的 “AOP and metadata”),所以这里不再赘 述,直接介绍 AspectJ 5 能做的一些事情。 出于示例的原因,我将采用 EJB 3.0 规范中的一些注释(请参阅 参考资料) 。对于具有相关事务策略的方法,可以用 @Tx 注释进行注释。例如:
如果想编写 TransactionManager 方面,那么可能会对带有 @Tx 注释的方法 的执行感兴趣。编写与它们匹配的切入点很简单,如清单 7 所示: 清单 7. 匹配事务性方法的执行
匹配注释方法的调用和执行 execution(@Tx * *(..)) 切入点表达式匹配任何方法的执行,可以使用任何 名称、任何类型、任何参数,只要方法用 @Tx 注释。如果需要,也可以缩小范围 。到事务性方法的匹配 调用 同样简单,只需编写“call(@Tx * *(..))”即可。 AOP@Work:介绍AspectJ 5 - AspectJ中的Java 5支持和其他新特性抢鲜看(6)时间:2011-09-04 IBM Adrian Colyer在这种情况下,实现事务策略的建议需要知道执行方法上的 @Tx 注释的 value。使用 AspectJ,可以把连接点的上下文值绑定到切入点表达式,然后向建 议公布上下文。在 AspectJ 5 中,用新的切入点指示符 @annotation 把这个能 力扩展到了注释上。像 AspectJ 中所有的其他上下文绑定切入点指示符一样, @annotation 扮演着双重角色:既把连接点匹配限制到主题(方法、字段、构造 函数等)具有指定类型注释的连接点上,又公开那个值。可以很容易地重新定义 TransactionManager 方面,让它利用这一优点,如下所示: 清单 8. 公开注释值
运行时持久性 在使用 @annotation 来匹配注释时,注释类型必须拥有运行时持久性(否则 AspectJ 就不能在运行时公开注释值)。就像前面看到的,匹配只使用 execution 就能处理只具有类文件持久性的注释。 到目前为止所展示的技术,处理的都是基于字段的连接点。假设有个字段用 @ClassifiedData 注释,那么可以编写清单 9 所示的两个切入点中的一个,具体 取决于是否需要公开实际的注释值: 清单 9. 带注释的字段
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |