我正在使用Spring AOP 4.0.x. 我有下一堂课:
class A {
public void methodA() {
// ...
}
}
class B extends A {
public void methodB() {
// ...
}
}
class C extends A {
public void methodC() {
// ...
}
}
我想为B类中继承的方法A 添加一个仅针对 的建议。
问题在于,如果我使用下一个切入点来实现它
execution(* package.B+.method*(..))
然后即使类 C 中的继承 methodA 引发异常,也会执行建议。
如何让Spring知道方法A 已经抛出异常作为类 B 的继承方法,而不是 C 一个?
谢谢。
更新
我现在找到的唯一解决方案是使用下一个表达式:
execution(* package.B.method*(..)) ||
(execution(* package.A.method*(..)) && target(package.B))
,但看起来有更简洁优雅的解决方案。