Spring AOP会忽略从父类继承的方法
程序员文章站
2022-03-14 22:21:34
...
Spring aop会忽略从父类继承的方法。
在项目中,我想拦截所有的dao类,结构如下:
dao
---| generic
---| GenericDao
---| GoodsDao
---| SupermarketDao
---| UserDao
下面的三个dao 继承自 统一的父类(GenericDao),在beans.xml中,我只拦截了下面的三个子类,beans.xml中的部分代码如下:
<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>
结果从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> |