`
jinnianshilongnian
  • 浏览: 21436054 次
  • 性别: Icon_minigender_1
博客专栏
5c8dac6a-21dc-3466-8abb-057664ab39c7
跟我学spring3
浏览量:2405365
D659df3e-4ad7-3b12-8b9a-1e94abd75ac3
Spring杂谈
浏览量:2997971
43989fe4-8b6b-3109-aaec-379d27dd4090
跟开涛学SpringMVC...
浏览量:5631665
1df97887-a9e1-3328-b6da-091f51f886a1
Servlet3.1规范翻...
浏览量:257613
4f347843-a078-36c1-977f-797c7fc123fc
springmvc杂谈
浏览量:1593281
22722232-95c1-34f2-b8e1-d059493d3d98
hibernate杂谈
浏览量:249002
45b32b6f-7468-3077-be40-00a5853c9a48
跟我学Shiro
浏览量:5847801
Group-logo
跟我学Nginx+Lua开...
浏览量:698233
5041f67a-12b2-30ba-814d-b55f466529d5
亿级流量网站架构核心技术
浏览量:780585
社区版块
存档分类
最新评论

Spring事务不起作用 问题汇总

 
阅读更多

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

 

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

AopUtils.isAopProxy()

AopUtils.isCglibProxy() //cglib

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

 

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

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

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

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

 

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

 

3、 如果你是基于类的代理,而非接口,如果想代理父类里的,可以用

execution(* com.sishuok.es..service..*+.*(..))  

//+表示子类的也扫描(参考http://jinnianshilongnian.iteye.com/blog/1420691

 

欢迎补充。

8
2
分享到:
评论
8 楼 alreadyfor 2016-07-21  
System.out.println(AopUtils.isAopProxy(userService));
    System.out.println(AopUtils.isCglibProxy(userService));
    System.out.println(AopUtils.isJdkDynamicProxy(userService));返回true,true,false 但是事务还是没起作用
7 楼 sky_xin 2016-07-01  
我在代码中加入了这三个方法:
AopUtils.isAopProxy()
AopUtils.isCglibProxy() //cglib
AopUtils.isJdkDynamicProxy()
但是仍然都是返回false,不过我的事务起作用了,原因就是你说的覆盖了原来扫描的Service和Dao,我的修改是这样的
原来的代码:
<context:component-scan base-package="com.linjia.web"  >
</context:component-scan>
改正后:
<context:component-scan base-package="com.linjia.web.controller"  >
</context:component-scan>

这里只需要扫描controller就行了,不要整个都扫描,否则会覆盖,从而引起事务失效
6 楼 mmhotsky 2015-10-28  
单元测试时,如果不继承AbstractTransactionalJUnit4SpringContextTests,那么需要在@TestExecutionListeners中增加TransactionalTestExecutionListener.class
5 楼 flywangfei 2015-04-01  
补充一种情况,开启事务的时候和执行dao的数据源不是一个,也会引起问题
4 楼 jiang79603445 2013-08-26  
[img][/img]
3 楼 wgy_superpower 2013-07-28  
jinnianshilongnian 写道
wgy_superpower 写道
spring 默认情况下使用 JDK代理,有没有什么办法 让它 强制使用 cglib代理呢,
还是说 spring 会根据代理类型(接口还是类)自己选择使用JDK代理还是CGLIB代理呢?

比如xml风格的 <aop:config proxy-target-class="true">即可强制cglib代理



谢谢解答,我也是偶然一问,没想到呀。。。呵呵,必须要赞扬一下博主的这种精神。。
2 楼 jinnianshilongnian 2013-07-26  
wgy_superpower 写道
spring 默认情况下使用 JDK代理,有没有什么办法 让它 强制使用 cglib代理呢,
还是说 spring 会根据代理类型(接口还是类)自己选择使用JDK代理还是CGLIB代理呢?

比如xml风格的 <aop:config proxy-target-class="true">即可强制cglib代理
1 楼 wgy_superpower 2013-07-26  
spring 默认情况下使用 JDK代理,有没有什么办法 让它 强制使用 cglib代理呢,
还是说 spring 会根据代理类型(接口还是类)自己选择使用JDK代理还是CGLIB代理呢?

相关推荐

    spring杂谈 作者zhang KaiTao

    1. spring杂谈[原创] 1.1 Spring事务处理时自我调用的解决方案及...1.31 Spring事务不起作用 问题汇总 1.32 Spring3 Web MVC下的数据类型转换(第一篇)——《跟我学Spring3 Web MVC》抢先看 1.33 Spring 注入集合类型

    Spring中事务的传播属性详解

    Spring中事务的传播属性详解,Spring中事务的传播属性详解

    Spring事务管理失效原因汇总

    Spring声明式事务管理失效的原因,这里面是日常工作中踩过的坑,事务失效所产生的影响比较隐蔽,测试时易忽略,大多是在线上暴露,这可能是对Spring管理下的信任吧

    spring事务管理几种方式代码实例

    spring事务管理几种方式代码实例:涉及编程式事务,声明式事务之拦截器代理方式、AOP切面通知方式、AspectJ注解方式,通过不同方式实例代码展现,总结spring事务管理的一般规律,从宏观上加深理解spring事务管理特性...

    Spring事务五种不同的代理配置

    Spring事务配置的五种方式 ,根据代理机制的不同,总结了五种Spring事务的配置方式.

    Spring事务不生效.pdf

    Spring事务不生效,spring项目中常见事务不生效总结

    spring事务总结.docx

    事务失效、事务回滚、大事务问题、编程式事务

    Spring事务配置的五种方式

    Spring事务配置的五种方式,学习总结

    spring声明事务,编程事务实现

    相信对于很多初学者或者使用者,都了解spring事务,但是具体细节,实现方式,都没有系统的概念或者无从下手,本人周末闲来无事,坐下总结,时间紧促,写的不周全的地方还请提出宝贵意见。

    Spring事务总结

    spring配置事务 项目总结出来的 公司多年开发经验 使用 方便

    spring的事务管理

    csdn博客竟然也出问题,好不容总结一下,竟然发不了博客。依稀csdn! 1、spring与hibernate事务管理 2、aop 3、事务管理,声明式。 3、事务传递特性说明

    Spring的事务10种常见失效场景总结.zip

    Spring的事务10种常见失效场景总结.zip

    Spring学习总结(不含整合其他框架)

    文档对Spring的知识做了一个全面的总结,具体讲解Spring的控制反转、依赖注入、面向切面编程、Spring中的Bean配置、Spring对JDBC的支持以及Spring的声明式事务

    Spring + Hibernate + Struts 事务配置小例子(带提示框等小技巧)

    前几天搞 Spring + Hibernate + Struts 事务配置 ,网上找了好多资料,不过好无语,大多都是 Ctrl + V,浪费俺的宝贵时间 现在我总结配出一套,给大家参考参考,可能有不足,请大家多多交流。 附:内有弹出...

    Spring总结.xmind

    包含Spring简介,AOP,SpringMVC,集成JDBC,事务,ORM框架,Spring集成知识点总结,以思维导图的形式展示,xmind文件。

    Spring事务配置的五种方法(二)[总结].pdf

    Spring事务配置的五种方法(二)[总结].pdf

    全网最热spring问题总结.pdf

    总结了常见的spring面试题,方便学习者查漏补缺。 使用 Spring 框架的好处是什么? 轻量: Spring 是轻量的, 基本的版本大约 2MB。 控制反转: Spring 通过控制反转实现了松散耦合, 对象们给出它们的依 赖, ...

    spring培训-笔记

    目录: Spring教程 1 名词解释 2 Spring框架概述 3 ...Spring的声明式事务 22 Spring对其它企业应用支持 22 注:后面的内容我将不再完善,但网上的朋友可以帮助完善,只需注明住处即可。

    spring.doc

    5.1.8.2Spring事务的传播属性 117 5.1.8.3Spring事务的隔离级别 117 拓展: 118 5.1.8.4以XML配置的 形式 119 拓展: 120 5.1.8.5以注解方式配置 125 拓展: 127 5.1.9使用CGLIB以XML形式配置事务 130 5.2 Spring+...

Global site tag (gtag.js) - Google Analytics