2

我遇到了一个涉及 Aspectj 的问题。我要做的是对带有方法级注释的调用进行“after() throwing”匹配。

@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 版本

4

1 回答 1

2

哈!知道了。

所以线索是从正在编织的东西中看到痕迹。我可以看到一些方法得到编织,而另一些则没有。但我突破的方法是重复编织方法。

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

我需要切换到“执行”,这样即使没有调用方法,编织也会发生在方法上。

将我的建议更改为:

after() throwing(MyCustomException ex) : execution (@com.me.MyAnnotation * *(..))
于 2012-12-05T21:56:18.777 回答