我有两个实现 MethodInterceptor 的建议类。我想将这些建议应用于一个切入点,并在调用目标方法时选择建议。
我认为这是不可能的,所以我做了一个目标类的子类,并为子类使用切入点表达。
类看起来像:
class SuperClass implements SomeInterface {
public int getZero() {
return 0;
}
}
class SubClass extends SuperClass implements SomeInterface {
}
XML 看起来像:
<bean id="subAdvice" class="package.SomeAdvice" />
<aop:config>
<aop:advisor advice-ref="subAdvice" pointcut="execution(* *..SubClass.*(..))"/>
</aop:config>
但是subAdvice
当我通过调用getZero()
方法时没有应用SubClass
,可能是因为在SubClass
. 当我重写该getZero()
方法时它起作用了,但我不想重写它,因为实际上方法太多,SuperClass
如果我想调用SuperClass
's 方法是多余的。
我可以将建议应用于不实现方法的子类吗?或者有没有其他有选择地应用建议的好方法?