Pointcut的学习(三)

2008-02-23 09:36:14来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

根据连接点的所属,Pointcut有以下几种类型:

Method execution execution(MethodSignature)

Method Call call(MethodSignature)

Method execution捕捉的连接点是在被执行的函数体,而Method call捕捉的连接点是在调用符合MethodSignature的函数的代码处。

如:

public pointcut MethodExecutor():execution(* Shape .draw(..));

before():MethodExecutor(){

Signature sig = thisJoinPointStaticPart.getSignature();

logger.logp(Level.INFO, sig.getDeclaringType().getName(),

sig.getName(), "method execution");

}

捕捉的是在Circle.draw()执行前的连接点

public class Circle implements Shape{

public void draw(){

logger.logp(Level.INFO, "circle", "draw", "drawing a circle");

}

}

public pointcut MethodCall():call(* Shape .draw());

before():MethodCall(){

Signature sig = thisJoinPointStaticPart.getSignature();

logger.logp(Level.INFO, sig.getDeclaringType().getName(),

sig.getName(), "method call ");

}

捕捉的是调用Circle.draw()之前的代码

Circle clr = new Circle();

clr.draw();

两者的功能基本一致。

上面的代码运行的结果如下:

2005-7-14 22:14:36 com.aia.ch03.Circle draw

信息

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java Thread Programming 1.7 - Concurrent Access to Objects a

下一篇:软件开发工作的几点感想(原创)