当前位置:googles上网导航 ->> 信息广场 ->> 应用大全 ->> Java大全 ->> 正文

Pointcut的学习(一)


http://www.googles.com.cn 时间:2005-8-7 17:23:00 来源:互联网络

Pointcut: 在程序中捕捉或者标识连接点(joint point)的,捕捉到连接点后,可以在连接点执行的前面或者后面设置一些规则。

AspectJ中,Pointcut可以是匿名的也可以是命名的。匿名的pointcut附着在使用它们的地方,如一个Advice或者另一个pointcut的定义中。

如:

       before():execution(* *.*(..)){

}

红字部分就是一个匿名的pointcut

      

       public pointcut logNew():execution(*.new())&& !within(Log);

       一个名字为logNewpointcut.

Pointcut由几个部分组成:访问限制 pointcut关键字 名称(): 类型关键字 信号(signature);

       如上面的命名pointcutpublic是一个访问限制;pointcut是一个关键字,表明这是一个pointcutlogNew()是一个名称(pointcut)的名称;executionpointcut的类型;(*.new())&& !within(Log);是一个signature,跟类型关键字联合起来,说明这是一个捕捉除了在Log方面的其它类的构造函数的执行的一个pointcut

 

通配符与Pointcut操作符:

AspectJ支持三种通配符

       *     任意长度的字符

       Account* 表示用Account开头的字符串

       ..     任意长度的字符,或任意层

       account..* 任意包account的子包或者类型。

       +     一个给定的类型的任意子类或者子接口。

       Account+ 任意Account的子类或者子接口。

 

AspectJ支持一元操作符“!”和二元操作符“&&”、“||”。

!,用来将某些特定的类型pointcut排除在捕捉的连接点之外;

&&,捕捉的连接点必须满足两个pointcut

||,捕捉的连接点只要满足两个pointcut之一即可。


关闭窗口

【 相 关 内 容 】

热点内容

最近更新