写一个与所有执行方法匹配的指针, 使我感到困惑。 我尝试了一个指针, 它应该匹配所有方法执行 类 < code> Alpha code > 的 方法 :
execution(* Alpha.*(..))
与以下类级高频相交
public class Alpha {
public void alphaMethod() {...}
}
public class Beta extends Alpha {
public void betaMethod() {
alphaMethod();
}
}
如果主程序程序在 Beta
/code>上调用 alphaMethod
< /code> 来调用一个 Beta
来调用我的建议,我的建议会被调用,但主程序电话 betaMethod
也没有被调用,我不明白为什么。
频谱定义 :
@Aspect
public class MyAspect {
@Before(value = "execution(* Alpha.*(..))", argNames="joinPoint")
public void myAdvice(JoinPoint joinPoint) {
System.out.println("BEFORE: " + joinPoint.getSignature());
}
}
主方法 :
Beta beta = ...;
beta.alphaMethod(); //advice is called
beta.betaMethod(); //advice is NOT called.