一、核心jar包:
spring-tx-4.0.0.RELEASE.jar
下载地址:http://download.youkuaiyun.com/detail/clarkkentyang/9707932
二、核心接口
1.PlatformTransactionManager(平台事务管理器):管理事务的核心接口。
需要导入jar包:spring-jdbc-4.0.0.RELEASE.jar(jdbc开发)、spring-orm-4.0.0.RELEASE.jar(hibernate开发)
常见事务管理器:
DataSourseTransactionManager:jdbc开发时使用的事务管理器
HibernateTransactionManager :Hibernate开发时使用的事务管理器
主要方法:
TransactionStatus getTransaction(TransactionDefinition definition) ,事务管理器 通过“事务详情”,获得“事务状态”,从而管理事务。
void commit(TransactionStatus status) 根据状态提交
void rollback(TransactionStatus status) 根据状态回滚
事务状态:
2.TransactionDefinition(事务属性):用于事务具体详情,如隔离级别、是否只读、超时时间、
常用方法:
传播行为:在两个业务之间如何共享事务。
PROPAGATION_REQUIRED , required , 必须 【默认值】
支持当前事务,A如果有事务,B将使用该事务。
如果A没有事务,B将创建一个新的事务。
PROPAGATION_SUPPORTS ,supports ,支持
支持当前事务,A如果有事务,B将使用该事务。
如果A没有事务,B将以非事务执行。
PROPAGATION_MANDATORY,mandatory ,强制
支持当前事务,A如果有事务,B将使用该事务。
如果A没有事务,B将抛异常。
PROPAGATION_REQUIRES_NEW , requires_new ,必须新的
如果A有事务,将A的事务挂起,B创建一个新的事务
如果A没有事务,B创建一个新的事务
PROPAGATION_NOT_SUPPORTED ,not_supported ,不支持
如果A有事务,将A的事务挂起,B将以非事务执行
如果A没有事务,B将以非事务执行
PROPAGATION_NEVER ,never,从不
如果A有事务,B将抛异常
如果A没有事务,B将以非事务执行
PROPAGATION_NESTED ,nested ,嵌套
A和B底层采用保存点机制,形成嵌套事务。
3.TransactionStatus(事务状态):用于记录当前事务状态,
本文介绍了Spring框架中的事务管理,包括核心接口PlatformTransactionManager及其事务管理器如DataSourseTransactionManager和HibernateTransactionManager。讨论了TransactionDefinition事务属性,如传播行为,并详细解释了各种传播行为的含义,以及TransactionStatus在事务状态管理中的作用。
652

被折叠的 条评论
为什么被折叠?



