首先是父類spring
cn.geektom.service.A代理
內部有個方法:method();code
而後是子類get
cn.geektom.service.B extends Aio
如今要對B類中的method() 進行aop代理。配置
若是按照以下配置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()方法則會被忽略掉。因此必須修改一下service
<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()方法時都會被代理。方法