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年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

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

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

评论交流
    说说你的看法