更简单的方式是使用@Transactional
1:在配置文件中开启对@Transactional的支持
<tx:annotation-driven transaction-manager="txManager"/>
2:在类或者方法上配置@Transactional
3:@Transactional后面可以跟属性配置,如下:
@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
默认的@Transactional配置如下:
1:事务传播设置是 PROPAGATION_REQUIRED
2:事务隔离级别是 ISOLATION_DEFAULT
3:事务是 读/写
4:事务超时默认是依赖于事务系统的,或者事务超时没有被支持。
5:任何 RuntimeException 将触发事务回滚,但是任何 checked Exception 将不触发事务回滚
Spring提供两种方式的编程式事务管理:
1:使用 TransactionTemplate
2:直接使用一个 PlatformTransactionManager 实现
如果你选择编程式事务管理,Spring小组推荐你采用第一种方法(即使用 TransactionTemplate)。第二种方法类似使用JTA的 UserTransaction API (除了异常处理简单点儿)。
使用 TransactionTemplate:TransactionTemplate 采用与Spring中别的摸板同样的方法,使用回调机制,将应用代码从样板式的资源获取和释放代码中解放出来,不再有大量的try/catch/finally/try/catch代码块。同样,和别的模板类一样,TransactionTemplate 类的实例是线程安全的。
使用TransactionTemplate示例如下:
直接使用TransactionTemplate
使用 PlatformTransactionManager
你也可以直接使用PlatformTransactionManager的实现来管理事务。只需通过bean引用简单地传入一个 PlatformTransactionManager 实现,然后使用 TransactionDefinition 和 TransactionStatus 对象,你就可以启动一个事务,提交或回滚。
使用 PlatformTransactionManager示例如下:
直接使用统一的PlatformTransactionManager
java代码:
-
- PlatformTransactionManager txManager = (PlatformTransactionManager)
- ctx.getBean("txManager");
-
- DefaultTransactionDefinition td = new DefaultTransactionDefinition();
- td.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
-
- TransactionStatus status = txManager.getTransaction(td);
- try {
-
- new JdbcTemplate(ds).execute("insert into tbl_user (uuid,name) values('"+um1.getUuid()+"','"+um1.getName()+"')");
-
- txManager.commit(status);
- }catch (Exception e) {
-
- txManager.rollback(status);
- }
分享到:
相关推荐
Spring中事务的传播属性详解,Spring中事务的传播属性详解
【免费】深入描述spring的事务处理机制,很不错的资源。
文档中详细的讲到了在Spring的事务处理。
spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码
Java高级编程 实验报告 spring 声明事务 实验目的 掌握spring 声明式事务管理配置 实验环境 本实验采用本实验采用的eclipse或者 Myeclpse开发工具。Spring 4.0以上 Jdk1.7以上、oracle/mysql。
spring事务与数据库操作
spring声明事务的配置 spring声明事务的配置 spring声明事务的配置
Spring事务管理Demo
今天小编就为大家分享一篇关于Spring中事务传播行为的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
详细介绍了Spring中事务和SpringBoot中事务的使用以及注意事项
本代码使用H2内存数据库演示spring事务使用,包括编程式事务,声明式事务@Transactional使用,自定义事务事务注解实现自定义事务管理器
spring 事务spring 事务spring 事务spring 事务spring 事务
主要给大家介绍了关于Spring中事务用法示例及实现原理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Spring的事务框架将开发过程中事务管理相关的关注点进行适当的分离,并对这些关注点进行合 理的抽象,最终打造了一套使用方便,却功能强大的事务管理“利器”。通过Spring的事务框架,我 们可以按照统一的编程模型来...
Spring事务流程图时序图Spring事务流程图时序图Spring事务流程图时序图Spring事务流程图时序图
Spring 声明式事务和Spring 编程式事务
spring事务配置详解 spring事务配置详解
Spring的事务配置的五种方式 Spring的事务配置的五种方式 Spring的事务配置的五种方式 Spring的事务配置的五种方式
Spring+Hibernate 使用TransactionInterceptor声明式事务配置