- 浏览: 678677 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (302)
- 知识库 (51)
- lucene (8)
- 数据结构 (7)
- 问题及解决方法 (97)
- Quartz (4)
- JavaScript (26)
- java 基础 (40)
- 休闲 (9)
- 数据库相关 (32)
- 面试题 (4)
- Hibernate (5)
- Struts (11)
- JBPM (2)
- Spring (3)
- ajax (7)
- Flex (0)
- 报表 (4)
- 打印 (2)
- prototype (3)
- Struts2 (3)
- JQUERY (4)
- Ruby (0)
- Linux (9)
- Android (3)
- Objective-c (2)
- Python (8)
- map (1)
- mybatis (3)
- php (2)
- ios (0)
- 问题及解决方法 struts2 spring ognl resion tomcat (0)
- 问题及解决方法 struts2 spring ognl resin tomcat (1)
- c++ (2)
- 问题及解决方法 upload.parseRequest(request) 为空 (1)
- Eclipse maven tomcat (1)
- 知识库 服务器配置 (1)
- sersync2 (1)
- Maven Jetty Plugin 配置指南(翻译) (1)
最新评论
-
jgroups:
...
遇到Causedby:java.lang.NoClassDefFoundError:javax/validation/ParameterNameProvider -
dmyccc:
第二种方法还是很佩服楼主的,但是多少感觉有点投机取巧了。但是确 ...
spring mvc整合kindeditor文件上传问题 -
du_bo:
在xx-servlet.xml中这样配置<bean id ...
spring mvc整合kindeditor文件上传问题 -
java梦之翼:
太感谢了, 问题得到解决, 感谢
异常org.mybatis.spring.transaction.SpringManagedTransactionFactory.newTransaction -
du_bo:
这是我的上传package com.sp.controller ...
spring mvc整合kindeditor文件上传问题
spring 和 mybatis 项目配置的事务 不回滚
研究了一下有以下几个原因:
1. mysql(我用的mysql) 表的 引擎 不是 InnoDB (因为InnoDB是支持事务的)
2. 抛出的异常 是 Exception不是 RuntimeException 因为 spring 的异常默认是检查(unhandled Exception)
3. 配置的方法是否正确:
下面是我的一个配置,留下来以便查询
<!-- transaction manager, use JtaTransactionManager for global tx --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- enable component scanning (beware that this does not enable mapper scanning!) --> <context:component-scan base-package="com.auto"/> <!-- enable autowire --> <context:annotation-config /> <!-- enable transaction demarcation with annotations --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <!-- the transactional semantics... --> <tx:attributes> <!-- all methods starting with 'get' are read-only --> <tx:method name="get*" read-only="true"/> <tx:method name="find*" read-only="true"/> <tx:method name="list*" read-only="true"/> <tx:method name="*" rollback-for="Exception"/> </tx:attributes> </tx:advice> <!-- ensure that the above transactional advice runs for any execution of an operation defined by the FooService interface --> <aop:config proxy-target-class="true"> <aop:pointcut id="fooServiceOperation" expression="execution(* com.auto.service..*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation" /> </aop:config>
------------------------------------------------------------------
下面是 看到别的可能 我没有经过验证 贴出来 有时间验证一下:
配置文件的问题吧? 1.root-context.xml <!-- 不扫描带有@Controller注解的类。因为这些类已经随容器启动时,在servlet-context中扫描过一遍了 --> <context:component-scan base-package="com.kimho"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> 2、servlet-context.xml: <!-- 扫描业务组件,让spring不扫描带有@Service注解的类(留在root-context.xml中扫描@Service注解的类),防止事务失效 --> <context:component-scan base-package="com.kimho"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> </context:component-scan>
Spring MVC启动时的配置文件,包含组件扫描、url映射以及设置freemarker参数,让spring不扫描带有@Service注解的类。为什么要这样设置?因为servlet-context.xml与service-context.xml不是同时加载,如果不进行这样的设置,那么,spring就会将所有带@Service注解的类都扫描到容器中,等到加载service-context.xml的时候,会因为容器已经存在Service类,使得cglib将不对Service进行代理,直接导致的结果就是在service-context中的事务配置不起作用,发生异常时,无法对数据进行回滚。
发表评论
-
CentOS升级Python到2.7 遇到的问题 输入发不见了
2014-12-11 18:42 857CentOS 6.6 上安装的python版本是2.6,不 ... -
unable to ping server at localhost:1099
2014-12-10 10:30 5871开始使用linux开发环境,在配置idea 下tomcat ... -
Maven使用FAQ:与Maven版本和字符集编码有关的编译错误处理
2014-08-25 18:28 693在Maven3.0下创建了一个POM文件,可对项目进行正常的 ... -
遇到Causedby:java.lang.NoClassDefFoundError:javax/validation/ParameterNameProvider
2014-08-06 10:19 14211. 由于hibernate-validator-5.x.x ... -
redis 使用test
2014-04-05 12:21 1339package com.xxx.redis; impo ... -
Eclipse中导入或者Update Maven Project时的Null Pointer Exceptio
2014-03-19 11:02 832有时在Eclipse中导入Maven的Projects时,或 ... -
The reference to entity "characterEncoding" must end with the ';' delimiter
2014-01-13 15:04 1062数据源配置时加上编码转换格式后出问题了: The r ... -
java 图片涂抹功能
2013-12-30 16:19 1482今天遇到一个问题,用户上传图片的时候,有些敏感信息 ... -
Sublime Text 2快捷键大全
2013-12-16 15:42 976快捷键: 说明 Ctrl+P: ... -
Maven Jetty Plugin 配置指南(翻译)
2013-10-26 13:20 1109Jetty 版本信息 J ... -
jdk 1.6 下载地址
2013-10-16 14:14 858https://jdk6.java.net/download. ... -
java 截取汉字字符串
2013-10-11 11:49 1412对于汉字的切分 1个 汉字 占用2个字符 不能切出半 ... -
sersync2 同步
2013-09-17 19:06 1482sersync2 实时同步 ... -
Spring MVC json 406 Not Acceptable
2013-09-12 17:41 1162使用SPring MVC 处理json 的时候老是 406 ... -
springMVC No mapping found for HTTP request with URI
2013-08-14 18:51 1195No mapping found for HTTP requ ... -
JSON和JSONP
2013-08-01 11:53 925由于Sencha Touch 2这种开 ... -
Nginx 配置文件详解
2013-07-30 20:17 1103Nginx 配置文件详解 user nginx ... -
Eclipse 运行 maven web 项目
2013-07-19 14:00 20661eclipse 运行 maven web 项目 有两种方 ... -
Spring的quartz定时器同一时刻重复执行二次的问题解决
2013-07-18 17:49 1730最近用Spring的quartz定时器的时 ... -
Python2.7 安装 beautifulsoup4-4.2.1
2013-07-15 11:53 3038一个BeautifulSoup的模块,下载的是bea ...
相关推荐
在"Spring/SpringMVC/MyBatis整合+事务回滚"的主题中,我们将深入探讨如何将这三个框架整合起来,并实现事务的回滚功能。 首先,Spring框架是核心,它提供了依赖注入(DI)和面向切面编程(AOP)的能力,使得代码更...
4. **事务配置**:在Spring中,事务管理有两种方式:编程式事务管理和声明式事务管理。通常我们采用声明式事务管理,通过`<tx:annotation-driven>`标签启用基于注解的事务管理。事务的传播行为、隔离级别、超时时间...
### 关于Spring MyBatis纯注解事务不能提交的问题分析与解决 #### 问题背景 在使用Spring结合MyBatis框架进行开发时,有时会遇到事务管理方面的问题,特别是当项目采用纯注解的方式配置事务时,可能会出现事务无法...
1. **配置文件**:包括Spring的bean配置文件(如`applicationContext.xml`)和MyBatis的配置文件(如`mybatis-config.xml`),它们定义了数据源、事务管理器、SqlSessionFactory以及Mapper接口的扫描路径。...
MyBatis本身并不提供事务管理,但在Spring环境下,MyBatis的SqlSession会自动被Spring事务管理器控制。当事务开始后,所有的SqlSession操作(如insert、update、delete)都会被包含在这个事务中,直到事务结束。 6...
- **事务控制**:Spring自动管理事务,例如在Service层方法中,一旦发生异常,Spring会回滚事务。 7. **最佳实践**: - 使用MyBatis的动态SQL功能,提高SQL的可读性和可维护性。 - 将复杂的业务逻辑放在Service...
Spring 与 各框架的组各下来,版本就特别的多,针对简单的 使用注解来管理事务的,研究了两天,要不网上写的不清楚,要不版本都很旧了,所以就是不回滚,Spring 的配置太灵活了,在加上新手,根本就不可能明白Spring...
在SpringBoot框架中整合Mybatis进行事务管理是常见的开发实践,这主要涉及到Spring的声明式事务管理和Mybatis的事务配置。下面将详细讲解这个主题。 首先,SpringBoot简化了Spring的配置,使得开发者可以快速搭建...
关于事务管理,Spring提供了一种声明式事务管理方式,允许开发者在不直接接触事务API的情况下,通过配置来控制事务的边界。在Spring中,我们可以使用@Transactional注解来标记需要进行事务管理的方法,一旦发生异常...
例如,在学生返校申请过程中,如果涉及到多个表的操作,一旦出现异常,Spring会自动回滚所有未提交的事务,防止数据状态的不一致。 总结来说,SpringMyBatis在“学生返校系统”中扮演了关键角色,提供了强大的数据...
- **事务管理**:Spring提供声明式事务管理,只需在Service层的方法上添加@Transactional注解,即可实现事务的自动提交、回滚等操作。 4. **使用EasyUI**: EasyUI是一个基于jQuery的UI组件库,用于快速构建美观...
SpringMyBatis是Java开发中常见的轻量级框架集成,它结合了Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)特性,以及MyBatis的持久层优势,为开发人员提供了...
声明式事务管理更简洁,只需在 Service 类上添加 @Transactional 注解,Spring 就会自动处理事务的开启、提交、回滚。 8. **测试**:编写单元测试或集成测试,验证 Spring MVC 和 MyBatis 的配置是否正确,确保...
Spring 和 Mybatis 是两个在...通过上述内容,我们可以看到Spring-Mybatis整合涉及到的核心知识点,包括框架的引入、配置、接口设计、事务管理和测试等多个方面。理解并掌握这些知识点,对于进行Java Web开发至关重要。
在IT行业中,分布式事务是大型系统中不可或...接着,配置Spring的事务管理器,声明Atomikos作为全局事务管理器,并指定相应的事务属性,如超时时间、回滚规则等。在applicationContext.xml或对应的配置类中: ```xml ...
通过`PlatformTransactionManager`配置,Spring能够控制事务的提交和回滚,实现声明式事务管理。 - **使用@Autowired注入Mapper**:在需要使用数据库操作的地方,可以使用Spring的@Autowired注解来注入对应的Mapper...
7. **事务管理图**:解释Spring如何处理事务开始、提交、回滚的时机。 这些思维导图对于初学者来说是非常有用的,它们以图形化的方式帮助理解复杂的概念,使得学习过程更加直观和高效。通过深入研究这些图,你可以...
在描述中提到的事务回滚,通常指的是声明式事务管理,通过在方法上添加@Transactional注解,由Spring自动进行事务的开启、提交或回滚。 6. **XML配置**:在Spring和MyBatis的整合中,通常会使用XML配置文件来定义...
- Spring的事务管理:通过配置@Transactional注解或在XML中声明事务边界,实现事务的自动提交和回滚。 5. 应用场景:Spring+MyBatis的整合方案广泛应用于复杂的企业级应用,特别是在数据处理量大、业务逻辑复杂的...
Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。 业务方案: 1、批处理定期提交。 2、并行批处理:并行处理工作。 3、...