Spring事务传播特性的最好总结和面试答案

Spring事务传播特性一共有7种:

1. REQUIRED
代表如果已经存在一个事务,就加入到这个事务中。如果当前没有事务,就新建一个事务,就是默认的事务传播设置。
类比解释:如果马路上面有车就搭车,没有车就自己造一个车。(反正走路是不可能的)
2.SUPPORTS
代表如果已经存在一个事务,就加入到这个事务中。如果当前没有事务,就以非事务方式执行。
类比解释:如果马路上面有车就搭车,没有车就自己走路回去,节能环保。
3.MANDATORY
代表如果已经存在一个事务,就加入到这个事务中。如果当前没有事务,就以抛出异常。
类比解释:如果马路上面有车就搭车,没有车就很愤怒。
4.REQUIRES_NEW
代表新建事务,如果已经存在一个事务,就把这个事务挂起。
类比解释:如果马路上有车也不搭车,还要自己造车。
5.NOT_SUPPORT
代表如果已经存在一个事务,就把这个事务挂起,并以非事务方式执行。
类比解释:如果马路上有车也不搭车,自己走绿色环保(就是穷啊)
6.NEVER
代表如果已经存在一个事务,就抛出异常。如果当前没有事务,以非事务方式执行。
类比解释:马路上有车就愤怒的爆炸,一个车没有就自己走绿色环保。
7.NESTED
代表创建当前事务的子事务

类比解释:水和鱼的关系,鱼(子事务)没有了但不影响水(父事务),但是水(父事务)没有了则影响了鱼(子事务)
总结(个人建议):其实最常用的就是前2种,面试官也不会让你很详细的说出7种,你只需要知道里面的3,4种就行了,例如:3或者6没必要去死记硬背,因为需求中也很少用到,了解就行了。

发布了33 篇原创文章 · 获赞 50 · 访问量 2682

猜你喜欢

转载自blog.csdn.net/qq_43107323/article/details/103326404