2

是否有可能知道 AspectJ 中的切入点涵盖了哪些方法?

这个问题的背景是我有一个涵盖所有方法的切入点(除了它自己的方法):

pointcut traceMethods() : (execution(* *(..))&& !cflow(within(MethodTrace)));

一旦应用程序启动,我希望能够为切入点所涵盖的每个方法创建一个方法签名列表。那可能吗?

4

1 回答 1

0

对于您想要的以下内容:

pointcut traceMethods() : (execution(* *(..))&& !cflow(within(MethodTrace)));

before() : traceMethods()
{
     // Holds the signature the method intercepted by the pointcut traceMethods()
     String s = thisJoinPointStaticPart.getSignature().toString();  

     // do something with string 's'
}

关于它的更多信息在这里

AspectJ 提供了一个特殊的引用变量 thisJoinPoint,它包含有关当前连接点的反射信息,供建议使用。thisJoinPoint 变量只能在通知上下文中使用,就像 this 只能在非静态方法和变量初始化器的上下文中使用一样。在建议中,thisJoinPoint 是 org.aspectj.lang.JoinPoint 类型的对象

于 2013-02-05T09:46:15.117 回答