面试突击:事务隔离级别和传播机制有什么区别?

网站建设3年前发布
10 0 0

202303060107363782051514f512386c878211ef3368a029ca5a431,事务隔离级别和事务传播机制都是对事务行为的规范,但二者描述的侧重点却不同。本文这里所说的事务隔离级别和事务传播机制指的是 Spring 框架中的机制。,事务隔离级别是对事务 4 大特性中隔离性的具体体现,使用事务隔离级别可以控制并发事务在同时执行时的某种行为。,比如,有两个事务同时操作同一张表,此时有一个事务修改了这张表的数据,但尚未提交事务,那么在另一个事务中,要不要(或者说能不能)看到其他事务尚未提交的数据呢?,这个问题的答案就要看事务的隔离级别了,不同的事务隔离级别,对应的行为模式也是不一样的(有些隔离级别可以看到其他事务尚未提交的数据,有些事务隔离级别看不到其他事务尚未提交的数据),这就是事务隔离级别的作用。,Sping 中的事务隔离级别有 5 种,它们分别是:,所以,相比于 MySQL 的事务隔离级别,Spring 中多了一种 DEFAULT 的事务隔离级别。,事务隔离级别与问题的对应关系如下:,20230306010737a4e83d176828de9d97023518e8aefbd40ff9e9891,Spring 中,事务隔离级别可以通过 @Transactional(isolation = Isolation.DEFAULT) 来设置。,Spring 事务传播机制是指,包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的。,Spring 事务传播机制可使用 @Transactional(propagation=Propagation.REQUIRED) 来设置,Spring 事务传播机制的级别包含以下 7 种:,以上 7 种传播机制,可分为以下 3 类:,20230306010737c2ba66b624e0b150e9087739dd6fbe9f888569688,从上述的介绍中可以看出,事务隔离级别描述的是多个事务同时执行时的某种行为,它们的调用流程如下:,20230306010737130c156879e95c19af27105587936a111671fa719,而事务传播机制是描述,多个包含了事务的方法在相互调用时事务的传播行为,它们的调用流程如下:,2023030601075341f0d6f10a1c8aa413178464bb69e96d6aac20422,所以事务隔离级别描述的是纵向事务并发调用时的行为模式,而事务传播机制描述的是横向事务传递时的行为模式。

© 版权声明

相关文章