# 《Spring核心技术》第30章:深度解析Spring事务三大接口

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码地址:https://github.com/binghe001/spring-annotation-book/tree/master/spring-annotation-chapter-29 (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

大家好,我是冰河~~


  • 本章难度:★★★★☆

  • 本章重点:进一步学习并掌握Spring事务的三大接口,从源码解析彻底理解Spring事务三大接口的设计和流程。


本章目录如下所示:

  • 学习指引
  • PlatformTransactionManager接口
  • TransactionDefinition接口
  • TransactionStatus接口
  • 总结
  • 思考
  • VIP服务

# 一、学习指引

你了解过Spring事务的三大接口吗?

Spring能够支持事务的管理功能,最核心的就是Spring事务的三大接口,这三大接口分别为:PlatformTransactionManager、TransactionDefinition和TransactionStatus,本章就对这三大接口进行简单的介绍。

# 二、PlatformTransactionManager接口

分析下PlatformTransactionManager接口~~

通过Spring的源码,可以得知:Spring并不是直接管理事务的,而是提供了多种事务管理器。通过这些事务管理器,Spring将事务管理的职责委托给了Hibernate、MyBatis或者JTA等持久化框架的事务来实现。

PlatformTransactionManager接口的源码详见:org.springframework.transaction.PlatformTransactionManager。

public interface PlatformTransactionManager extends TransactionManager {
	 /**
	 *获取事务状态
	 */
	 TransactionStatus getTransaction(@Nullable TransactionDefinition definition) throws TransactionException;
	 /**
	 *提交事务
	 */
	 void commit(TransactionStatus status) throws TransactionException;
	 /**
	 *回滚事务
	 */
	 void rollback(TransactionStatus status) throws TransactionException;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

通过PlatformTransactionManager接口,Spring为Hibernate、MyBatis或者JTA等持久化框架提供了事务管理器,但是具体的实现还是要各自的框架自己完成。

# 三、TransactionDefinition接口

分析下TransactionDefinition接口~~

TransactionDefinition接口的源码详见:org.springframework.transaction.TransactionDefinition。

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码