我使用的是springaop4.0.x。我有接下来的课程:
class A {
public void methodA() {
// ...
}
}
class B extends A {
public void methodB() {
// ...
}
}
class C extends A {
public void methodC() {
// ...
}
}
我只想为类b中继承的methoda添加一个after抛出建议。
问题是如果我使用下一个切入点来实现它
execution(* package.B+.method*(..))
然后,即使类c中继承的methoda抛出异常,也会执行通知。
如何让spring知道methoda抛出了一个异常作为类b的继承方法,而不是类c的继承方法?
谢谢您。
更新
到目前为止,我找到的唯一解决方案是使用下一个表达式:
execution(* package.B.method*(..)) ||
(execution(* package.A.method*(..)) && target(package.B))
,但似乎有更简洁优雅的解决方案。
暂无答案!
目前还没有任何答案,快来回答吧!