先来看看这张图,spring中有很多事务管理的接口,最重要的就这三大块
- Transanction Definition用来定义事务的一些属性(事务的传播行为隔离级别什么的)
- PlatformTransanctionManager接口,用来定义事务管理器
- TransanctionStatus用来记录事务当前的状态(完成了没啊之类的)
这三个接口都在org.springframework.transanction包中
下面来详细说说
Transanction Definition
看看这个类的主要接口和成员:
仔细分一下
友情链接:spring事务的传播方式
事务隔离级别就很简单啦
- default默认:就是数据库用什么,我就用什么
- 然后就是数据库的那四种隔离级别我就不赘述了
TransanctionManager
不得不说打开它的时候我是有点惊讶的
第一次见这么实在的接口,居然真的什么都没有
好叭来看看实现这个接口的类
PlatformTransanctionManager
public interface PlatformTransactionManager extends TransactionManager {
TransactionStatus getTransaction(@Nullable TransactionDefinition definition)
throws TransactionException;
void commit(TransactionStatus status) throws TransactionException;
void rollback(TransactionStatus status) throws TransactionException;
}
一共就三个方法(还是很实在的接口emm)
- getTransanction 用来获取事务的状态,返回一个TransactionStatus
- commit提交
- rollback回滚
Transanction status
这个就是定义了transaction的状态