什么是Spring事务传播行为?Spring有哪些事务传播行为?


Spring事务传播行为是指当一个事务方法(当前事务)被另一个事务方法(调用者)调用时,这个事务方法(当前事务)对另一个事务方法(调用者)的态度。简单来说,就是当一个事务方法A调用了另一个事务方法B时,B应该如何应对。

用伪代码说明:

 public void methodA(){
    methodB();
    //doSomething
 }
 
 @Transaction(Propagation=XXX)
 public void methodB(){
    //doSomething
 }

代码中methodA()方法嵌套调用了methodB()方法,methodB()的事务传播行为由@Transaction(Propagation=XXX)设置决定。这里需要注意的是methodA()并没有开启事务,某一个事务传播行为修饰的方法并不是必须要在开启事务的外围方法中调用。


Spring事务传播行为有七种类型,这些类型决定了当一个事务方法被另一个事务方法调用时,应该如何使用事务。例如:

1. PROPAGATION_REQUIRED(默认传播行为):表示当前方法必须在事务中运行。如果调用者有事务,则当前方法加入到调用者事务中运行。如果调用者没有事务,则当前方法自己新开启一个事务运行。这是最常见的选择。


2. PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。
其他的传播行为类型还包括PROPAGATION_MANDATORY、PROPAGATION_REQUIRES_NEW、PROPAGATION_NOT_SUPPORTED等,每种类型都有其特定的行为规则。


3. PROPAGATION_MANDATORY:强制要求当前存在事务,如果不存在事务,则抛出异常。


4. PROPAGATION_REQUIRES_NEW:重新开启一个新的事务,如果当前存在事务,则挂起该事务。


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


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


7. PROPAGATION_NESTED:如果当前存在事务,则嵌套事务中执行。如果当前没有事务,就执行REQUIRED行为。

这些传播行为类型提供了灵活的事务控制机制,使得开发者可以根据具体的业务需求,选择合适的事务传播行为。

本文作者:王大麻子

本文链接:https://www.cnblogs.com/wangxie/p/18005442

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   王大麻子  阅读(54)  评论(0编辑  收藏  举报
  1. 1 想说 颜人中
  2. 2 孤身 徐秉龙
  3. 3 像暗杀似的绕到背后突然拥抱你 太一
像暗杀似的绕到背后突然拥抱你 - 太一
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 太一

作曲 : 太一

道两旁

一眼望去怎么黄昏秋凉凉

多过一晚

精心打扮

巨可爱的大自然

说好的一起做着丑蜥蜴

结果整容成佳丽

气死了我要烧掉日记

啊啊啊再有虫子不分你

听说蝙蝠包养你

最近刚送了你貂皮

又哪能和我比

四月里

像暗杀似的绕到背后突然拥抱你

动作不用练习

认识你就熟悉

那时候闻起来香的超级

黑夜到白昼 十五楼

黑夜到白昼 十五楼

真的没有没有

看见了光 不流浪

就是没有没有

壮士不看透 这碗粥

说了没有没有

里面藏花 半克拉

呐呐没有没有

黑夜到白昼 十五楼

真的没有没有

看见了光 不流浪

就是没有没有

壮士不看透 这碗粥

说了没有没有

里面藏花 半克拉

呐呐没有没有

骨子里面势必先

骨子里面势必先

口味太重连血都咸

魑魅魍魉死在艳阳天

成鬼成神一线之间

星辰耀眼

凡人藏不住欲望的妖艳

眼里的耳边的梦

布达 布达 蹦

红 红 红

龙头下巴 雷打不动

我非要挑逗

指尖勾着碰碰

摸摸 哼哼

黑夜到白昼 十五楼

黑夜到白昼 十五楼

真的没有没有

看见了光 不流浪

就是没有没有

壮士不看透 这碗粥

说了没有没有

里面藏花 半克拉

呐呐没有没有

果果果真可惜总是被记忆

约定天和地

难过就给猫织件毛衣

正好是冬天里

破又旧还缺了箭的弓

葱油面没了葱

真正暗痛的病来势汹汹

谁救都没有用

是的没用没用没用没用…

💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
点击右上角即可分享
微信分享提示