Spring之事务管理(一)

本文介绍了Spring框架中的事务管理,包括核心接口PlatformTransactionManager及其事务管理器如DataSourseTransactionManager和HibernateTransactionManager。讨论了TransactionDefinition事务属性,如传播行为,并详细解释了各种传播行为的含义,以及TransactionStatus在事务状态管理中的作用。

一、核心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(事务状态):用于记录当前事务状态,






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值