-
2004-08-23
AspectJ's declare的四种用法
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://befresh.blogbus.com/logs/345266.html
在前几天,我简单地介绍了AspectJ的一些高级特性,其中就有两种高级特性(Aspect precedence和Exception softening)将会用到declare关键字。declare关键字是AspectJ为了便于开发而提供的一种内部声明方式,declare在AspectJ中还是比较常用,下面我们就来看看declare的四种主要用法:
1、declare warning、declare error
当编译器在编译期间发现匹配pointcut的join point,declare warning和declare error就会使编译器报告警告或错误信息。这个功能还是相当有用的,譬如在使用Facade模式时,我们当然不愿意让client程序调用facade层次之下的某些方法。这时,就可以使用这个特性,当编译器发现有client程序调用非facade方法就会报告警告或错误信息。declare warning和declare error的语法如下:
declare warning : <pointcut> : <message>;
declare error : <pointcut> : <message>;
2、declare parents
declare parents主要是让我们能改变类的层次,也就是说可以让类继承新接口或新类。譬如你想为data package下的所有类添加Cacheable接口,你就可以使用declare parents : data.* implements Cacheable;这样的语句,现在data package下的所有类都实现了Cacheable接口。然后就可以通过introduce methods来为这些类添加Cacheable的接口方法。declare parents的语法如下:
declare parents : [ChildTypePattern] implements [InterfaceList];
declare parents : [ChildTypePattern] extends [Class or InterfaceList];
3、declare precedence
我在简单介绍AspectJ的高级特性(一)中介绍了aspect precedence,详细情况可以参考这篇文章。
4、declare soft
我在简单介绍AspectJ的高级特性(三)中介绍了Exception softening,可作为参考。
在AspectJ中,主要包括上述四种declare用法,灵活的运用declare,将为我们开发程序带来更多的方便。
随机文章:
简单介绍AspectJ的高级特性(三) 2004-08-21简单介绍AspectJ的高级特性(二) 2004-08-20简单介绍AspectJ的高级特性(一) 2004-08-19AOP and annotations 2004-05-18Nanning 2004-03-19
收藏到:Del.icio.us








评论