当前位置: 首页 > news >正文

从英文命名理解Spring事务传播机制@Transactional解释

事务传播机制

验证demo

序号  事务传播策略英文释义策略解析
1MANDATORY强制的,非有不可的,强制性规定的

也就是规定被注解的方法被调用之前,强烈地要求执行线程中必须已经存在事务,如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。(最要求事务)

2REQUIRED需要的,必备的

被注解方法需要被一个事务包裹,如果当前存在事务,则直接使用,加入该事务;如果当前没有事务,则创建一个新的事务并加入。

3SUPPORTS支持的,拥护的,但不是强制的

因为不是强制的要求事务的,所以如果主动调用的方法存在事务,则当前被调用的SUPPORTS就加入已经存在的事务;如果当前没有事务,则以非事务的方式继续执行,这种行为就表达了对事物的支持性,SUPPORTS就像一块铁钉,有磁铁(事务)就被磁铁(吸引),没有就是清清白白干干净净的铁钉。

4REQUIRES_NEW需要的,且需要一个新的

需要事务,且还需要一个全新的事务,这比REQUIRED对事务的要求更高,无论当前是否存在事务,都创建一个新的事务,并挂起当前事务(如果存在的话)。

5NOT_SUPPORTED不支持,支持的反义词,甚至有反抗的意味

不支持事务,且抵触事务,会强烈地以非事务的方式执行操作,如果存在的话甚至会挂起当前事务。

6NEVER从不,反抗意味的巅峰

最反抗事务的一个等级,以非事务的方式执行,如果当前存在事务,则抛出异常。(最反抗事务)

7NESTED嵌套的

如果当前存在事务,则执行一个嵌套事务;如果当前没有事务,则执行与REQUIRED相同的行为。嵌套的就多了一层独立的味道在里边,说明有一定的隔离性。隔离在于:如果当前存在事务,它将会成为父级事务的一个子事务,方法结束后并没有提交,只有等父事务结束才提交
如果当前没有事务,则新建事务
如果它异常,父级可以捕获它的异常而不进行回滚,正常提交
但如果父级异常,它必然回滚,这就是和 REQUIRES_NEW 的区别


http://www.mrgr.cn/news/17903.html

相关文章:

  • 量子运算-计算新时代的开端
  • 大模型工作交互过程
  • C++基础知识(四)
  • Python入门了解(一)
  • eureka一
  • 再获认可!海云安荣登2024中国网络安全市场100强榜单
  • 【类模板】类模板的基本范式
  • 超越卷积滤波器,HyCoT利用Transformer捕捉高光谱图像的全局依赖性 !
  • leetcode209. Minimum Size Subarray Sum
  • Spring扩展点系列-InstantiationAwareBeanPostProcessor
  • 原码 / 反码 / 补码的介绍及认知
  • Python测试开发基础(三)---random模块
  • SQLi-LABS靶场56-60通过攻略
  • 【网络基础】探索 NAT 技术:IP 转换、NAPT、NAT穿越及代理服务器
  • Windows 11家庭中文版中管理员阻止运行应用程序的问题
  • C++第四十四弹---Lambda表达式的妙用:高效解决编程中的匿名函数问题
  • 去中心化身份验证:Web3时代数字身份的革新
  • Python测试开发基础(一)
  • Ascend显卡创建虚拟vgpu实例
  • 安防监控视频打手机检测算法核心技术打手机检测算法源码、模型简介