AspectJ's declare的四种用法 :: 寸心知
来源: BlogBus 原始链接: http://www.blogbus.com:80/blogbus/blog/diary.php?diaryid=345266 存档链接: https://web.archive.org/web/20041120104444id_/http://www.blogbus.com:80/blogbus/blog/diary.php?diaryid=345266
寸心知 文章千古事,得失寸心知 <<<简单介绍AspectJ的高级特性(三) | 首页 | 合肥归来>>> AspectJ's declare的四种用法 在前几天,我简单地介绍了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 : : ; declare error : : ; 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,将为我们开发程序带来更多的方便。 befresh @ 2004-08-23 16:42 引用Trackback(0) | 编辑 评论 发表评论 最后更新 NanoWeb+SiteMesh (2) NanoWeb+SiteMesh Grash 合肥归来 AspectJ's declare的四种用法 简单介绍AspectJ的高级特性(三) 简单介绍AspectJ的高级特性(二) 简单介绍AspectJ的高级特性(一) 轻量级JMS消费者框架 关于JavaScript重名函数的sugar