Aspectj匹配切入点而不关心方法级注释参数

时间:2012-12-05 20:55:17

标签: java annotations aspectj pointcut

我对涉及Aspectj的问题感到难过。我要做的是对一个用方法级注释注释的调用进行“after()throw”匹配。

@MyAnnotation    
public void doSomething(Param p1, Param p2)

如果我使用

after() throwing(MyCustomException ex) : call (@com.me.MyAnnotation * *.*(..))

它有效,但是如果我在注释中添加了一些参数,那么它们就无法匹配。

@MyAnnotation(value = "doobery")    
public void doSomething(Param p1, Param p2)

我的切入点缺少什么?

为了澄清,我想匹配两个示例,我也不关心注释中的参数。

AspectJ 1.6的版本

1 个答案:

答案 0 :(得分:2)

哈!得到了它。

所以线索正在看到被编织的痕迹。我可以看到一些方法被编织而其他方法没有。但是,我突破了方法的重复编织方法。

我正在使用“调用” - 因此编织只发生在方法的调用上,所以当我有一个类被编织多次调用匹配方法时,它们会出现多次。

我需要切换到“执行”,以便即使没有被调用,也会在方法上进行编织。

我的建议是:

after() throwing(MyCustomException ex) : execution (@com.me.MyAnnotation * *(..))