spring aop 无法代理父类方法 的解决方法

原创
2016/08/10 17:38
阅读数 6.8K

首先是父类

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()方法时都会被代理。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部