Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:

表1事务传播行为类型

事务传播行为类型

说明

PROPAGATION_REQUIRED

如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。spring默认使用此传播类型

PROPAGATION_SUPPORTS

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

PROPAGATION_MANDATORY

使用当前的事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW

新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED

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

PROPAGATION_NEVER

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

PROPAGATION_NESTED

如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。

当使用PROPAGATION_NESTED时,底层的数据源必须基于JDBC 3.0,并且实现者需要支持保存点事务机制

Spring 默认的事务传播行为是 PROPAGATION_REQUIRED,它适合于绝大多数的情况。假设 ServiveX#methodX() 都工作在事务环境下(即都被 Spring 事务增强了),假设程序中存在如下的调用链:Service1#method1()->Service2#method2()->Service3#method3(),那么这 3 个服务类的 3 个方法通过 Spring 的事务传播机制都工作在同一个事务中。

转载于:https://my.oschina.net/wugong/blog/1623087

spring事务的传播属性相关推荐

  1. 数据库事务原理详解-Spring 事务的传播属性

    所谓spring 事务的传播属性,就是定义在存在多个事务同时存在的时候,spring 应该如何处理这些事务的行为.这些属性在TransactionDefinition 中定义,具体常量的解释见下表: ...

  2. Spring 事务的传播属性

    Spring 事务的传播属性 事务的传播属性: 1.PROPAGATION_REQUIRED * :如果不存在事务则新建事务,若存在事务则加入事务,默认是这个 2.PROPAGATION_SUPPOR ...

  3. Spring事务处理,以及Spring事务的传播属性和隔离级别

    本文转自:http://www.cnblogs.com/younggun/archive/2013/07/16/3193800.html 事务的隔离级别:事务隔离级别用于处理多事务并发的情况,通常使用 ...

  4. Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别、不可重复读与幻读的区别

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spr ...

  5. 面试官:Spring事务的传播行为有几种?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:程序员入职国企,1周上班5小时,晒出薪资感叹:腾讯当CEO也不去个人原创+1博客:点击前往,查看更多 在Spri ...

  6. spring手动控制事务开启_“上帝视角”图解Spring事务的传播机制原理

    转载:https://mp.weixin.qq.com/s/odP1DKgRtXsCcAKxwGahug 数据库事务的"抓手" 数据库的事务功能已经由数据库自身实现,它留给用户的就 ...

  7. Spring事务的传播行为

    Spring事务的传播行为 Spring事务的传播行为有七种,对应着事务定义接口TransactionDefinition中的七种状态.PROPAGATION_REQUIRED.PROPAGATION ...

  8. Spring事务的传播机制

    spring事务的传播机制 1.spring事务 指封装在数据库事务之上的一种事务处理机制.其管理方法有两种,分别是编程式事务以及声明式事务.一般我们使用@Transactional进行声明式事务. ...

  9. spring事务的传播

    1.spring事务的传播 为什么会有传播机制 spring对事务的控制,是使用aop切面实现的 场景一:A调用B,都有事务,B异常,让B提交还是两个一起回滚 场景二:A调用B,A有事务,是够让B加入 ...

最新文章

  1. Codeforces 454C - Little Pony and Expected Maximum
  2. 《Linux内核原理与分析》第三周作业
  3. 天津市职高高一计算机试题及答案,职高(中职)数学(基础模块)上册题库.doc
  4. 数据结构与算法:排序算法的稳定性以及各性能比较python实现
  5. 做前端性能优化,还不知道什么是Preload、Prefetch、Preconnect、Prerendering,你就out了?
  6. S5PV210体系结构与接口06:串口编程
  7. IT学子成长指导类文章链接(十二)
  8. 分享几个Python小技巧函数里的4个小花招 1
  9. STM32F7 SAI驱动
  10. 关于java语言的基本介绍
  11. 360视频:旋转球面投影RSP
  12. 计算机无法开移动热点,电脑无法设置移动热点【步骤详解】
  13. 揭秘:为什么羊毛党可以0元购物?
  14. OpenHarmony开发环境WSL2配置踩坑
  15. 《塞尔达传说》与氛围游戏的兴起:在游戏中感受禅意
  16. 【二十】 H.266/VVC | 仿射运动估计AMVP继承相邻块的运动信息函数 | addAffineMVPCandUnscaled函数
  17. 深度学习系列 -- 第二门课 改善深层神经网络:超参数调试、正则化以及优化(一):深度学习的实践层面(Practical aspects of Deep Learning)
  18. 请教高手(关于视频语音聊天室)
  19. 【IoT】基于NB-IoT的LWM2M协议浅析
  20. 解码器LengthFieldBasedFrameDecoder

热门文章

  1. vsftp 简易部署使用
  2. Server Core 的部署与管理
  3. 软件测试也需要推广?!
  4. 证券基金行业IT运维“远景”如何应对?
  5. 美将遣返庇护申请者至墨西哥 弱势人士有望豁免
  6. 一个失败的创意:GPGPU纹理化通用加速kD树的实现
  7. 项目: NFS服务的搭建
  8. 确保帐户安全 谈MySQL数据库安全解决方案
  9. 关于PHP的错误机制总结
  10. Lucence.net索引技术 一