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
网友评论