1

我对此进行了method注释:

@Around("execution(* it.foo.bar.Flow.*(..))")
public Object profile(ProceedingJoinPoint pjp) {...}

Flow class我有一个简单switchenumeration type. 当我在那条线上跑时,profile method上面的内容被调用。这是pjp object我拥有的:

execution(int[] it.foo.bar.Flow.$SWITCH_TABLE$it$foo$bar$dataobjects$RequestType())

RequestTypeenum。我想避免在遇到profile method时被调用enum,所以我尝试了几个执行表达式,但它不起作用,即使除了上面的一个之外,下面的一个也不行:

&& !(execution(int[]     it.foo.bar.Flow.$SWITCH_TABLE$it$foo$bar$dataobjects$RequestType()))

是否有可能实现我想要做的事情?

4

1 回答 1

1

不可能在比方法更细粒度的级别上编织一个类。您可以将句柄的功能提取RequestType enum到一个单独的方法中并调整您的切入点表达式以避免这种情况:

@Around("execution(* it.foo.bar.Flow.*(..)) && !execution(* it.foo.bar.Flow.handleRequestType(..))")
于 2012-12-13T13:59:38.397 回答