Spring事务传播机制详解(7种事务传播机制)

Spring事务传播机制详解(7种事务传播机制)-mikechen

Spring事务的传播机制有七种:REQUIRED、REQUIRES_NEW、NESTED、SUPPORTS、NOT_SUPPORTED、MANDATORY和NEVER。

如下图所示:

Spring事务传播机制详解(7种事务传播机制)-mikechen

1.Propagation.REQUIRED

默认的事务传播级别,它表示如果当前存在事务,则加入该事务,如果当前没有事务,则创建一个新的事务。

2.Propagation.SUPPORTS

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

3.Propagation.MANDATORY

强制事务执行,若当前不存在事务,则抛出异常。

4.Propagation.REQUIRES_NEW

表示创建一个新的事务,如果当前存在事务,则把当前事务挂起。

也就是说不管外部方法是否开启事务,Propagation.REQUIRES_NEW 修饰的内部方法会新开启自己的事务,且开启的事务相互独立,互不干扰。

5.Propagation.NOT_SUPPORTED

以非事务方式运行,如果当前存在事务,则把当前事务挂起。

6.Propagation.NEVER

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

7.Propagation.NESTED

如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等价于 PROPAGATION_REQUIRED。

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法