Java mybatis mapper工厂bean和aop

Java mybatis mapper工厂bean和aop,java,spring,mybatis,Java,Spring,Mybatis,我正在用mybatis 3开发一个web应用程序, 弹簧3.1.1-释放。 我指的是 MapperFactoryBean创建的数据访问层对象都不能作为AOP的切入点 我对弹簧配置进行了如下编码: <bean id="memberDao" name="memberDao" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="

我正在用mybatis 3开发一个web应用程序, 弹簧3.1.1-释放。 我指的是

MapperFactoryBean
创建的数据访问层对象都不能作为AOP的切入点

我对弹簧配置进行了如下编码:

<bean id="memberDao" name="memberDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
            <property name="mapperInterface" value="com.musicovery.bookervery.dao.MemberDao" />
            <property name="sqlSessionFactory" ref="sqlSessionFactory" />
        </bean>

<!-- AOP Aspect -->
<bean id="customSqlExceptionTranslator" class="com.musicovery.bookervery.service.exception.CustomSqlExceptionTranslator" />

<!-- AOP Configuration -->
<aop:config>
            <aop:advisor advice-ref="customSqlExceptionTranslator" pointcut="bean(memberDao)" />
        </aop:config>

当我将切入点配置到另一个bean时,它可以工作。 但是只有由
MapperFactoryBean
创建的对象

我想用MapperFactoryBean提供的数据访问层对象应用AOP。

我该如何解决这个问题

提前感谢

(1)指向com.musicovery.bookerby.dao.MemberDao的切入点,而不是MapperFactoryBean。 (2) MapperFactoryBean是spring用来将mybatis映射器包装到Springbean的适配器

因此,您可以这样做以实现事务aop:

<aop:config>
        <aop:pointcut id="txPointcut"
                      expression="execution(public * com.musicovery.bookervery.dao.*.*(..))"/>
        <aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice"/>
</aop:config>