1

我的应用程序中有一个方面可以拦截系统上的每个建议执行。我希望能够像这样确定我的建议执行切入点正在“拦截”哪些建议

//... AdviceInspector.aj 中的一些代码

    before(): adviceexecution() && !within(AdviceInspector) {
    System.out.println("advice execution being intercepted");
            // TODO : get a way to know which advice execution has been intercepted
}

//... 更多代码

提前致谢

4

1 回答 1

0

您可以从 joinPoint 获得建议的签名。签名有多种方法来描述它。如果它只是为了调试 toString() 方法很好地描述了它

before(): adviceexecution() && !within(AdviceInspector) {
    org.aspectj.lang.Signature sig = thisJoinPoint.getStaticPart().getSignature();
    //It is also valid to do 
    //Signature sig =  thisJoinPointStaticPart.getSignature();
    System.out.println(sig);
}
于 2009-07-13T17:56:17.263 回答