Spring学习03:事务管理机制

  • Post author:
  • Post category:其他



spring底层的事务实现就依赖如下的三个接口:


在这里插入图片描述

可以看到事务管理器PlatfromTranscationManger这个接口里的三个事务相关的方法依赖于TransactionStatus 和 TransactionDefinition这两个接口,所以上面说的是事务实现与这三个接口相关

在这里插入图片描述

PlatfromTranscationManger只是一个接口,根据dao层的不同的框架,有不同的事务管理器的实现,我们常用的就是dao层基于jdbc或者ibatis的DataSourceTransactionManager

在这里插入图片描述

在这里插入图片描述

TransactionDefinition :在方法中都是加事务,但是事务的属性可以不一样,比如事务可以设置不同的隔离级别,可以设置不同的事务传播行为,可以设置成只读等等

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

transaction

在这里插入图片描述

在这里插入图片描述

Spring支持两种方式事务管理

  • 编程式的事务管理(在原有代码的基础上进行修改,这就没有体现切面)

    在这里插入图片描述

    2.声明式事务,分为使用XML或注解配置

    在这里插入图片描述


    具体案例


    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述


    transfer方法执行途中如果有异常的话,就需要进行回滚,但是很明显这个时候并没有加事务的控制,所以导致钱转出来了,但是别人没有收到

  • 方式一 XML配置方式来实现事务控制

    在这里插入图片描述

    在这里插入图片描述

    理解一下事务通知:如下的事务通知配置,也就是说都是加事务,但是事务的属性可以不一样(TransactionDefinition ),以get开头的所有方法的所加的事务都是只读的,以add开头的所有的方法的不是只读的,隔开级别是可重复读等等

    在这里插入图片描述

  • 方式二 基于注解的方式实现事务控制

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述



版权声明:本文为weixin_43027596原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。