面向方面的问题 - 切入点

时间:2011-01-12 23:50:01

标签: java aop aspectj

我想知道切入点中的以下含义

after(FigureElement fe, int x, int y) returning:
        call(void FigureElement.setXY(int, int))
        && target(fe)
        && args(x, y) {
    System.out.println(fe + " moved to (" + x + ", " + y + ")");
}

目标和args在这里意味着什么?我不知道。

非常感谢

1 个答案:

答案 0 :(得分:4)

让我们看看AspectJ guide

  目标执行对象是Type或Id类型的实例时

目标(类型或ID)每个连接点

     当参数是类型的实例或ID的类型

时,

args(Type或Id,...)每个连接点

在您的示例中,要匹配切入点,必须在FigureElement个实例上调用该方法,并且有两个int个参数。以targetargs参数指定的名称表示可以在您的建议体内访问这些参数。

因此,您的切入点将所有对FigureElement.setXY方法的调用与两个int参数匹配,并允许您将匹配的实例作为fe访问,将方法参数作为x和{ {1}}。