Spring事务不起作用 问题汇总
2015-06-10 16:37
211 查看
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的数据源不是一个,也会引起问题
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的数据源不是一个,也会引起问题
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- C#动态调整数组大小的方法
- 从jsp发送动态图像
- 编程语言里的静态、动态、强类型、弱类型等概念介绍
- php中动态变量用法实例
- C#中事件的动态调用实现方法
- jQuery+PHP实现动态数字展示特效
- JS动态修改iframe高度和宽度的方法
- JS实现文件动态顺序载入的方法
- JS动态显示表格上下frame的方法
- JavaScript动态修改背景颜色的方法
- JS动态修改表格cellPadding和cellSpacing的方法
- jQuery在页面加载时动态修改图片尺寸的方法
- Jquery实现动态切换图片的方法
- jQuery动态创建html元素的常用方法汇总
- jQuery 动态酷效果实现总结
- Oracle9i 动态SGA,PGA特性探索
- C#在运行时动态创建类型的实现方法