美文网首页
图解事务传播机制

图解事务传播机制

作者: cbhe | 来源:发表于2020-06-09 15:47 被阅读0次

编写程序的时候,在一个方法的方法体中调用另一个方法,似乎是司空见惯的事情。但如果这两个方法都涉及到事务,这时候就需要事务传播机制来协调内外事务的运行方式了。

例如下面的例子:

method1(){
    doSomethings();
    method2();
    doSomeOtherThings();
}

method1调用了method2,这时候就涉及到了事务传播机制,注意这里的事务传播机制的设置对象是method2。为了便于书写,我们假设method1如果有事务则记为事务1method2如果有事务则记为事务2

1. PROPAGATION_REQUIRED 需要事务
required

如果method1没有事务,则method2会运行在自己的事务里。如果method1有事务,则method2加入到method1的事务中。

这时候如果有事务,则method1和method2处于同一事务中,提交与回滚机制满足单个事务的特点。

2. PROPAGATION_REQUIRES_NEW 需要新事务
requires_new

不论method1有没有事务,method2都会开启一个新事务。如果method1有事务,则将method1的事务挂起。

这时,如果事务1和事务2都存在,则事务2的结果独立于事务1,也就是说事务2的回滚不影响事务1的执行,事务2的提交也不依赖于事务1。

3. PROPAGATION_SUPPORTS 支持事务

method1开启事务,则method2也在该事务中运行。method1没有事务,则method2按照无事务方式运行。

4. PROPAGATION_NOT_SUPPORTED 不支持事务

method2只能无事务运行。如果method1有事务,则把当前事务挂起。

5. PROPAGATION_NESTED 嵌套事务
nested

method2会在新建的事务中运行,如果method1有事务,则method2的事务嵌套进method1的事务中。

这时,如果事务1和事务2都存在,则事务2的回滚不影响事务1的结果,但事务1的回滚会引发事务2同时回滚,并且事务1提交时事务2才能提交。(可以想象成地上层叠铺了两张地毯,你卷起来上层的地毯并不会影响下面的地毯,但你卷起来下面的地毯肯定会同时将上面的地毯一块卷起来。)

6. PROPAGATION_MANDATORY 强制要求事务

method2强制要求method1将事务传播过来。如果method1没有提供事务,则报错。

7. PROPAGATION_NEVER 强制要求非事务

method2拒绝method1将事务传播过来。如果method1有事务,则报错。

相关文章

  • 图解事务传播机制

    编写程序的时候,在一个方法的方法体中调用另一个方法,似乎是司空见惯的事情。但如果这两个方法都涉及到事务,这时候就需...

  • Spring 事务

    ** 但是Spring事务有自己的特点,也就是事务传播机制。** ** 所谓事务传播机制,也就是在事务在多个...

  • 18个示例详解 Spring 事务传播机制(附测试源码)

    什么是事务传播机制 事务的传播机制,顾名思义就是多个事务方法之间调用,事务如何在这些方法之间传播。 举个例子,方法...

  • Spring嵌套事物

    一、事务传播机制: 事务的传播行为是针对嵌套事务而言。 示例: @Transactional(propagatio...

  • 事务传播机制

    事务 ---- 同生共死 要么都成功 要么都失败 REQUIRED:必须要一个事务(默认的) 访问我的时候...

  • 有关Spring事务,看这一篇就足够了

    本文将按照声明式事务的五个特性进行介绍: 事务传播机制 事务隔离机制 只读 事务超时 回滚规则 Spring事务传...

  • SSM spring 2

    1 Spring 事务实现方式、事务的传播机制、默认的事务类别 Spring事务的1+3种实现方式、7种传播行为、...

  • Spring事务传播机制

    开发中有多个事务方法嵌套调用时,就涉及到了 Spring 的事务传播机制。 下面梳理一下 7 种传播机制的含义,做...

  • 事务隔离机制 spring事务传播机制

    数据库事务隔离级别 1.read_uncommitid 脏读,读取未提交的数据2.Read_commited 读取...

  • 事务

    事务的传播机制 propagation=Propagation.REQUIRED:必须要有事务,如果原来有事务则假...

网友评论

      本文标题:图解事务传播机制

      本文链接:https://www.haomeiwen.com/subject/ealstktx.html