如何从周围提供来电方法信息

时间:2011-04-12 05:32:35

标签: aspectj

ThisJoinPoint只能获取当前的方法信息,无论如何得到调用方法信息?

2 个答案:

答案 0 :(得分:3)

您可以尝试使用包含JoinPoint的静态部分的特殊变量thisEnclosingJoinPointStaticPart

提及here(示例)和here(文档)

或者如果使用基于注释的AspectJ,请将以下内容传递给advice方法的参数,例如:

@Before("call( /* your pointcut definition */ )")
public void myCall(JoinPoint.EnclosingStaticPart thisEnclosingJoinPointStaticPart)
{
     // ...
}

提及here

答案 1 :(得分:0)

@Aspect
public class LoggingAspect {

    @Before(value = "execution(public * findAll())")
    public void beforeAdvice(JoinPoint pp){
        System.out.println("before advice called ....get calling method Signature"+pp.getSignature());
        System.out.println("before advice called ....get calling method name"+pp.getSignature().getName());
    }

}