spring 事务管理

1、PlatformTransactionManager 事务管理器
spring要管理事务必须使用事务管理器。
进行事务配置时,必须配置事务管理器
2、TransactionDefinition 事务详情
spring用于确定事务具体详情,比如:隔离级别,是否只读,超时时间。
进行事务配置时,必须配置详情,spring将配置项封装到了该对象实例。
3、TransactionStatus 事务状态
spring用于记录当前事务运行状态,比如:是否有保存点,事务是否完成。
spring底层根据状态进行相应操作。

TransactionDefinition 事务详情

事务详情.png

事务的传播行为:多个业务间怎么样共享事务

总共7种。

PROPAGATION_REQUIRED (必须):支持当前事务,如果A有事务,B必须使用该事务,如果A没用事务,那么B将创建一个事务。

PROPAGATION_SUPPORTS(支持): 支持当前事务,如果A有事务,那么B将使用该事务。如果A没有事务,B将以非事务执行。

PROPAGATION_MANDATORY(强制):支持当前事务,A如果有事务,B将使用该事务,A如果没有事务,B将抛出异常。

PROPAGATION_REQUIRES_NEW(必须新的):如果A有事务,将A的事务将挂机,B创建一个新的事务。如果A没有事务,B创建一个新的事务。

PROPAGATION_NOT_SUPPORTED(不支持):
如果A有事务,将A的事务将挂机,B将以非事务执行。如果A没有事务,B将以非事务执行。

PROPAGATION_NEVER(不):如果A有事务,B将抛异常。如果A没有事务,B将以非事务执行。

PROPAGATION_NESTED(嵌套):
A和B底层采用保存点的机制,形成嵌套事务。

1、配置事务管理器
2、开启事务管理
3、使用@Transactional

你可能感兴趣的:(spring 事务管理)