Spring Aspectj-Around建议不适用于接口实现



我有一个接口及其实现。

interface A{
String methodA();
String methodB();
}
public class Impl1 implements A{
@Override
public String methodA() {
methodB();
return "";
}
@Override
public String methodB() {
return "";
}
}
public class Impl2 implements A{
@Override
public String methodA() {
methodB();
return "";
}
@Override
public String methodB() {
return null;
}
}

当A接口&方法B((的执行。

@Around("within(com.bla.bla.A+) && execution(* methodB(..))")

但这并没有奏效。当我移除执行部分时,它只适用于调用外部的方法。任何想法都将不胜感激。

注意:方法b不是直接从接口中触发的。它在接口实现中触发。

Spring AOP在代理上工作。从methodA((调用methodB((称为自调用。Spring AOP将无法建议从methodA((对methodB((的方法调用,因为它不会通过代理。

Spring参考文档:理解AOP代理。阅读以开头的部分。这里要理解的关键是主(..(中的客户端代码

相关内容

  • 没有找到相关文章

最新更新