spring 的 transactionManager 事务管理器 配置

摘要:
传播_从不:以非事务方式执行。如果当前存在事务,将引发异常。PROPAGATION_ NESTED:支持当前事务。如果当前事务存在,将执行嵌套事务。如果没有当前事务,将创建一个新事务。默认值描述名称是与事务属性关联的方法名称。传播不需要事务传播行为隔离不默认事务隔离级别超时不-1事务超时时间只读不假事务是只读的?回滚不会触发的回滚;用逗号分隔。

转:

事务的传播特<tx:advice transaction-manager="transactionManager">

<tx:advice transaction-manager="transactionManager">
<tx:attributes>
           <!-- 读取操作 -->
<tx:method name="load*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/>
<tx:method name="get*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/>
<tx:method name="find*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/>
</tx:attributes>
</tx:advice>

spring中PROPAGATION类的事务属性详解

 

  1. PROPAGATION_REQUIRED:         支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 

  2. PROPAGATION_SUPPORTS:         支持当前事务,如果当前没有事务,就以非事务方式执行。 

  3. PROPAGATION_MANDATORY:      支持当前事务,如果当前没有事务,就抛出异常。 

  4. PROPAGATION_REQUIRES_NEW:   新建事务,如果当前存在事务,把当前事务挂起。

  5.  PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 

  6. PROPAGATION_NEVER:               以非事务方式执行,如果当前存在事务,则抛出异常。 

  7. PROPAGATION_NESTED:              支持当前事务,如果当前事务存在,则执行一个嵌套事务,如果当前没有事务,就新建一个事务。

<tx:method/> 有关的设置

属性是否需要?默认值描述
name 

与事务属性关联的方法名。通配符(*)可以用来指定一批关联到相同的事务属性的方法。如:'get*''handle*''on*Event'等等。

propagationREQUIRED事务传播行为
isolationDEFAULT事务隔离级别
timeout-1事务超时的时间(以秒为单位)
read-onlyfalse事务是否只读?
rollback-for 

将被触发进行回滚的 Exception(s);以逗号分开。 如:'com.foo.MyBusinessException,ServletException'

no-rollback-for 

 被触发进行回滚的 Exception(s);以逗号分开。 如:'com.foo.MyBusinessException,ServletException'

标签: <tx:advice transaction-

免责声明:文章转载自《spring 的 transactionManager 事务管理器 配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#中web项目使用log4net日志netcore3.1 webapi使用signalR下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

oracle事务

事务定义: (1)原子性:要么执行完成,要么不执行。 (2)一致性:业务逻辑一致性。例如:业务逻辑为,A表新增一条数据,B表需要更新一条数据,这两个操作需要都执行或者都不执行,就是一致性。此时,可以用@Transactional注解实现 (3)隔离性:多线程需要考虑隔离性,即线程1和线程2需要修改同一个表数据时,其中一个线程看到的要么是另一个线程执行完成或...

MySQL8.0官方文档学习

InnoDB架构 下面的架构里只挑选了部分内容进行学习 内存架构(In-Memory Structures) Buffer Pool Buffer Pool是内存中的一块区域,InnoDB访问表和索引的时候缓存这些数据。buffer pool使得经常使用的数据直接从内存读取,加快了数据处理。在专用的服务器上,会给buffer pool分配80%的物理内存...

Spring 事务管理详解

事务的概念   我们知道,在JavaEE的开发过程中,service方法用于处理主要的业务逻辑,而业务逻辑的处理往往伴随着对数据库的多个操作。以我们生活中常见的转账为例,service方法要实现将A账户转账到B账户的功能,则该方法内必定要有两个操作:先将A账户的金额减去要转账的数目,然后将B账户加上相应的金额数目。这两个操作必定要全部成功,方才表示本次转...

TXC分布式事务简介

1. TXC是什么TXC(Taobao Transaction Constructor)是阿里巴巴的一个分布式事务中间件,它可以通过极少的代码侵入,实现分布式事务。 在大部分情况下,应用只需要引入TXC Client的jar包,进行几项简单配置,以及以行计的代码改造,即可轻松保证分布式数据一致性。 TXC同时提供了丰富的编程和配置策略,以适应各种长尾的应用...

数据库连接,事务以及Java线程的关系

0. 前言 Spring作为Java框架王者,当前已经是基础容器框架的实际标准。Spring 除了提供了IoC、AOP特性外,还有一个极其核心和重要的特性:数据库事务。事务管理涉及到的技术点比较多,想完全理解需要花费一定的时间,本系列《Spring设计思想-事务篇》将通过如下几个方面来阐述Spring的数据库事务: 数据库连接java.sql.Conne...

spring学习(三) ———— spring事务操作

     前面一篇博文讲解了什么是AOP。学会了写AOP的实现,但是并没有实际运用起来,这一篇博文就算是对AOP技术应用的进阶把,重点是事务的处理。                                       --wh 一、jdbcTemplate         什么是JdbcTemplate?             spring提供用...