Spring AOP会忽略从父类继承的方法-阿里云开发者社区

开发者社区> 开发与运维> 正文

Spring AOP会忽略从父类继承的方法

简介:

spring aop会忽略从父类继承的方法。

在项目中,我想拦截所有的dao类,结构如下:

dao

   ---| generic

            ---| GenericDao

   ---| GoodsDao

   ---| SupermarketDao

   ---| UserDao

下面的三个dao 继承自 统一的父类(GenericDao),在beans.xml中,我只拦截了下面的三个子类,beans.xml中的部分代码如下:

Xml代码  收藏代码
  1. <aop:aspect id="myAspect" ref="loggerAop">  
  2.             <aop:pointcut id="daoPointcut" expression="execution(* com.shop.jn.dao.*.*(..))" />  
  3.             <aop:around pointcut-ref="daoPointcut" method="around" />  
  4.         </aop:aspect>  

 结果从GenericDao 中继承下来的方法都没有被aop 拦截到。

如何解决这个问题呢?

让切面也匹配父类(同时匹配父类和子类),修改如下:

 

<aop:aspect id="myAspect" ref="loggerAop">

           <aop:pointcut id="daoPointcut" expression="execution(* com.shop.jn.dao..*.*(..))" />

           <aop:around pointcut-ref="daoPointcut" method="around" />

       </aop:aspect>

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章