Spring事务处理步骤

文章目录
  1. 1. Spring事务处理步骤
    1. 1.1. (一)获取事务的属性
    2. 1.2. (二)加载配置的TransactionManager
    3. 1.3. (三)判断事务控制方式(声明式事务、编程式事务)
      1. 1.3.1. 声明式事务
      2. 1.3.2. 编程式事务
    4. 1.4. (四)在目标方法执行前获取事务并收集事务信息
    5. 1.5. (五)执行目标方法
    6. 1.6. (六)异常处理
      1. 1.6.1. 声明式事务
      2. 1.6.2. 编程式事务
    7. 1.7. (七)提交事务前的事务信息清除
    8. 1.8. (八)提交事务

Spring事务处理步骤

(一)获取事务的属性

获取事务的属性,包括需要事务回滚的异常、事务管理器。事务属性是Spring整个事务功能的基础。

(二)加载配置的TransactionManager

(三)判断事务控制方式(声明式事务、编程式事务)

声明式事务

根据事务属性判断事务,需要使用哪个TransactionManager来管理事务。

编程式事务

由于编程式事务是有开发人员自己来控制事务的,不需要事务属性,所以在此处使用CallbackPreferringPlatformTransactionManager来提供的默认的事务回调函数来处理事务,同时也不做事务的开启与提交。

(四)在目标方法执行前获取事务并收集事务信息

事务信息和事务属性并不是一个东西,TransactionInfo中包含了TransactionAttribute信息,也包括例如TransactionManager以及TransactionStatus等信息。

(五)执行目标方法

(六)异常处理

并不是所有异常,Spring都会将其回滚,默认只对RuntimeException回滚。

声明式事务

发生异常时,进行事务回滚。

编程式事务

发生异常时,Spring对事务不做处理,将异常信息包装,抛给开发人员。

(七)提交事务前的事务信息清除

(八)提交事务


关注我的微信公众号:FramePower
我会不定期发布相关技术积累,欢迎对技术有追求、志同道合的朋友加入,一起学习成长!


微信公众号

如果文章对你有帮助,欢迎点击上方按钮打赏作者