美文网首页
JAVA-每日一面 2022-01-19

JAVA-每日一面 2022-01-19

作者: YangEvol | 来源:发表于2022-01-19 17:43 被阅读0次

Spring 事务底层原理

a、划分处理单元——IOC

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

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

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

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

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

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

相关文章

  • JAVA-每日一面 2022-01-19

    Spring 事务底层原理 a、划分处理单元——IOC 由于 spring 解决的问题是对单个数据库进行局部事务处...

  • Hello Java

    目录 Java-基础(1/6) Java-对象(2/6) Java-核心库类 上(3/6) Java-核心库类下(...

  • Java-浅析Object类

    Java-浅析Object类 ++2016.7.19++byside @Java-浅析Object类 ======...

  • JAVA-每日一面 2022-02-17

    mysql调优 1、选择最合适的字段属性:类型、⻓度、是否允许NULL等;尽量把字段设为not null,⼀⾯查询...

  • JAVA-每日一面 2022-02-14

    接⼝限流⽅案 限制 总并发数(⽐如 数据库连接池、线程池) 限制 瞬时并发数(如 nginx 的 limit_co...

  • JAVA-每日一面 2022-01-18

    Spring IOC 如何实现 Spring 中的 org.springframework.beans 包和 or...

  • JAVA-每日一面 2022-01-16

    问BeanFactory 和 ApplicationContext 有什么区别 答 BeanFactory 可以理...

  • JAVA-每日一面 2022-01-08

    问:请简述一下cms垃圾回收机制答:1、概念:CMS全称 Concurrent Mark Sweep,是一款并发的...

  • JAVA-每日一面 2022-01-10

    问:mapreduce原理答:1、简介:mapreduce源自google的一篇文章,将海量数据处理的过程拆分为m...

  • JAVA-每日一面 2022-01-14

    问:高并发系统如何做性能优化?如何防止库存超卖?答: 高并发系统性能优化:优化程序,优化服务配置,优化系统配置1....

网友评论

      本文标题:JAVA-每日一面 2022-01-19

      本文链接:https://www.haomeiwen.com/subject/bhorhrtx.html