关于spring 事物传播性的研究】的更多相关文章

spring的一大特色就是数据库事务管理方便,我们在代码中编写代码时,看不到事务的使用,关键是spring 使用了AOP进行事务拦截.   这篇文章主要介绍spring的事务传播性.   1.为什么要介绍这个: 介绍一下使用场景: 在系统中我们使用了一个流水号,这个功能实现如下: 1.先使用for update 进行行锁. select * from sys_identity t where alias='REQUESTID' for update; 这个时候锁是不会释放的. 2.使用更新语句更…
Spring 事物传播特性 这是Spring官方的定义 一共有7种 摘自源码省略了一部分 public interface TransactionDefinition { int PROPAGATION_REQUIRED = 0; int PROPAGATION_SUPPORTS = 1; int PROPAGATION_MANDATORY = 2; int PROPAGATION_REQUIRES_NEW = 3; int PROPAGATION_NOT_SUPPORTED = 4; int…
Spring事物传播行为 Spring中事务的定义: Propagation(key属性确定代理应该给哪个方法增加事务行为.这样的属性最重要的部份是传播行为.)有以下选项可供使用: PROPAGATION_REQUIRED—如果当前有事务,就用当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择. PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行.//如果外层方法没有事务,就会以非事务进行执行. PROPAGATION_MANDATORY--…
一.什么是事务传播性 大白话讲就是,方法之间互相调用的时候,事务如何传播,比如A()调用B(),B()的事务是和A()共用一个事务(失败一起提交)? 还是新事务(两者事务互不影响)?,还是说B()不需要事务?,这就是事务传播性的意思. @Transactional() public void methodA(){ methodB(); //doSomething } @Transactional() public void methodB(){ //doSomething } 代码中的metho…
事务是逻辑处理原子性的保证手段,通过使用事务控制,可以极大的避免出现逻辑处理失败导致的脏数据等问题.事务最重要的两个特性,是事务的传播级别和数据隔离级别.传播级别定义的是事务的控制范围,事务隔离级别定义的是事务在数据库读写方面的控制范围. 以下是事务的7种传播级别: 1) PROPAGATION_REQUIRED ,默认的spring事务传播级别,使用该级别的特点是,如果上下文中已经存在事务,那么就加入到事务中执行,如果当前上下文中不存在事务,则新建事务执行.所以这个级别通常能满足处理大多数的业…
转载自:http://www.blogjava.net/freeman1984/archive/2010/04/28/319595.html7个传播行为,4个隔离级别, Spring事务的传播行为和隔离级别[transaction behavior and isolated level]2007-08-01 16:33事务的传播行为和隔离级别[transaction behavior and isolated level] Spring中事务的定义:一.Propagation : key属性确定…
Spring事务类型详解: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择. PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行. PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常. PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起. PROPAGATION_NOT_SUPPORTED--以非事务方式执行操…
事务的7种传播级别: 1)PROPAGATION_REQUIRED:支持当前事务,没有事务就新建一个. 2)PROPAGATION_SUPPORTS:支持当前事务,如果没有事务,以非事务方式处理 3)PROPAGATION_MANDATORY:支持当前事务,没有事务就抛异常 4)PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起 5)PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,有事务则挂起 6)PROPAGATION_NEV…
PROPAGATION_REQUIRED Support a current transaction; create a new one if none exists.  支持一个当前事务;如果不存在,创建一个新的. This is typically the default setting of a transaction definition, and typically defines a transaction synchronization scope. 默认设置,后面的不懂 PROP…
一.事务传播性 1.1 什么是事务的传播性 事务的传播性一般在事务嵌套时候使用,比如在事务A里面调用了另外一个使用事务的方法,那么这俩个事务是各自作为独立的事务执行提交,还是内层的事务合并到外层的事务一块提交呢,这就是事务传播性要确定的问题.下面一一介绍比较常用的事务传播性. 首先奉上事务拦截器TransactionInterceptor事务处理流程图: 1.2 PROPAGATION_REQUIRED Spring默认的事务传播机制,如果外层有事务则当前事务加入到外层事务,一块提交一块回滚,如…