Spring支持哪几种事务管理类型,Spring 的事务实现方式和实现原理是?

1.Spring事务简介

事务作用:在数据层保障一系列的数据库操作同成功同失败

Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败

为何需要在业务层处理事务?:有些操作在数据层无法保证同成功同失败,所以需要把事务放在业务层,比如:

  • 转账业务会有两次数据层的调用,一次是加钱一次是减钱
  • 把事务放在数据层,加钱和减钱就有两个事务
  • 没办法保证加钱和减钱同时成功或者同时失败
  • 这个时候就需要将事务放在业务层进行处理

Spring为了管理事务,提供了一个平台事务管理器PlatformTransactionManager

2.Spring ⽀持的事务管理类型

1.编程式事务管理使用编程的方式来管理事务,包括事务的开始、提交或回滚等操作,可以精细地控制事务的边界。

2.声明式事务管理:使用注解或 XML 配置来声明事务的属性,例如事务的隔离级别、传播行为、超时时间等, Spring 会⾃动为这些⽅法添加事务管理的⽀持,无需手动编写事务管理代码

3.注解式事务管理:通过在方法上添加@Transactional注解,开发人员可以非常方便地声明事务属性,例如 隔离级别、传播⾏为、超时时间等

3.Spring事务的实现原理

  • Spring对事务的管理底层是基于AOP实现的,采用AOP的方式进行了封装,核心接口是PlatformTransactionMabager:
  • 当在某个类或者方法上使用@Transactional注解后,Spring会基于该类生成一个代理对象,并将这个代理对象作为bean。当方法调用前会开启一个新事务,如果方法执行成功Spring会提交事务,否则回滚操作。

你可能感兴趣的:(SSM,spring,数据库,java)