http://jinnianshilongnian.iteye.com/blog/1850432

http://sishuok.com/forum/blogPost/list/0/2498.html


Spring事务不起作用 问题汇总

总有很多朋友询问spring事务不起作用怎么回事,这里我汇总下,欢迎补充:

1) 首先使用如下代码 确认你的bean 是代理对象吗?

    AopUtils.isAopProxy()

    AopUtils.isCglibProxy() //cglib

    AopUtils.isJdkDynamicProxy() //jdk动态代理

    如果不是 那么就是切入点配置出错了 或者如果你使用了springmvc,可能是context:component-scan重复扫描引起的.

   

   之前我的事务不生效就是因为springmvc重复扫描导致的;

   <context:component-scan base-package="com.pinan" use-default-filters="false">

          <context:include-filter type="regex" expression=".*\.action\..*" />

   </context:component-scan>

    这里的use-default-filters="false"必须设置,否则include-filter 不生效,将扫描base-package下的所有Bean


2) 如果是aop代理,那么说明代理成功,那么可能是如使用mysql且引擎是MyISAM造成的(因为不支持事务),改成InnoDB即可。


3)开启事务的时候和执行dao的数据源不是一个,也会引起问题