首先是父类
cn.geektom.service.A
内部有个方法:method();
然后是子类
cn.geektom.service.B extends A
现在要对B类中的method() 进行aop代理。
如果按照如下配置
<aop:config>
<aop:advisor advice-ref="a" pointcut="execution(* cn.geektom.service.B.method(..))" order="30" />
</aop:config>
是无法做到代理的。spring aop 只会在B中寻找method()方法,而父类A的method()方法则会被忽略掉。所以必须修改一下
<aop:config>
<aop:advisor advice-ref="a" pointcut="execution(* cn.geektom.service.A.method(..)) and
target(cn.geektom.service.B)" order="30" />
</aop:config>
代理的方法是A中的method,但是目标类必须是B,如果没有添加后面的target,那么任何A的子类调用method()方法时都会被代理。