Spring - Spring 事务底层原理

322 阅读2分钟
原文链接: www.jianshu.com
登录 注册写文章 首页下载APP

Spring - Spring 事务底层原理

撸帝关注赞赏支持

Spring - Spring 事务底层原理

学习完整课程请移步 互联网 Java 全栈工程师

划分处理单元 IOC

由于 Spring 解决的问题是对单个数据库进行局部事务处理的,具体的实现首相用 Spring 中的 IOC 划分了事务处理单元。并且将对事务的各种配置放到了 IOC 容器中(设置事务管理器,设置事务的传播特性及隔离机制)。

AOP 拦截需要进行事务处理的类

Spring 事务处理模块是通过 AOP 功能来实现声明式事务处理的,具体操作(比如事务实行的配置和读取,事务对象的抽象),用 TransactionProxyFactoryBean 接口来使用 AOP 功能,生成 proxy 代理对象,通过 TransactionInterceptor 完成对代理方法的拦截,将事务处理的功能编织到拦截的方法中。读取 IOC 容器事务配置属性,转化为 Spring 事务处理需要的内部数据结构(TransactionAttributeSourceAdvisor),转化为 TransactionAttribute 表示的数据对象。

对事物处理实现(事务的生成、提交、回滚、挂起)

Spring 委托给具体的事务处理器实现。实现了一个抽象和适配。适配的具体事务处理器:DataSource 数据源支持、Hibernate 数据源事务处理支持、JDO 数据源事务处理支持,JPA、JTA 数据源事务处理支持。这些支持都是通过设计 PlatformTransactionManagerAbstractPlatforTransaction 一系列事务处理的支持。 为常用数据源支持提供了一系列的 TransactionManager

结合

PlatformTransactionManager 实现了 TransactionInterception 接口,让其与 TransactionProxyFactoryBean 结合起来,形成一个 Spring 声明式事务处理的设计体系。

推荐阅读更多精彩内容

  • Spring原理剖析 Spring模块 Core(核心容器) 说明 核心容器提供Spring 框架的基本功能。核心容器的主要组件是Bea... Java高级架构阅读 1,246评论 0 赞 18
  • Spring 常见的一些面试题整理 IOC和DI是什么? Spring IOC 的理解,其初始化过程? BeanFactory 和 FactoryBe... justlpf阅读 1,248评论 1 赞 19
  • Spring 事务管理 PartV.TransactiomManagement github 地址 https://github.com/... 天幕_bc1a阅读 440评论 2 赞 0
  • Spring中常见面试题 什么是Spring Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Jav... jemmm阅读 12,102评论 1 赞 131
  • Spring 事务属性分析 Spring 事务属性分析 事务管理对于企业应用而言至关重要。它保证了用户的每一次操作都是可靠的,即便出现了异常的... 壹点零阅读 228评论 0 赞 2
评论0 赞2 2赞3赞 赞赏