您的位置:首页 > 编程语言 > Java开发

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

2016-08-10 17:38 1571 查看

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

首先是父类

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring aop 代理 父类