Spring 事务

目标

  事务回顾

  Spring事务管理的一组API

  Spring的编程式事务管理

  Spring声明式事务管理

事务回顾

  什么是事务?

    事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败

  事务的特性

    原子性:

      是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生

    一致性:

      指的是事务前后数据的完整性必须保持一致

    隔离性:

      指的是多个用户并发访问数据时,一个用户的事务不能被其他用户的书屋所烦扰,多个并发事务之间数据要被相互隔离

    持久性:

      指的是一个事务一旦被提交,它对数据库中数据的改变是永久性的,即使数据库发生故障也不应该对其有任何影响

Spring接口介绍

    PlatformTransactionManager  平台事务管理器

      Spring为不同的持久框架提供了不同PlatformTransactionManager接口实现

      

    TransactionDefinition  事务定义信息(隔离、传播、超时、只读)

      如果不考虑隔离级别,会引发安全问题有:

        脏读:

          一个事务读取了另一个事务改写但还未提交的数据,如果数据被回滚,则读到的数据是无效的

        不可重复读:

          在同一事务中,多次读取同一数据返回的结果不同

        幻读:

          一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了

          再后来的查询中,第一个事务就会发现有些原来没有的记录

                 

           事务的传播行为

          解决业务相互调用的问题

          

    TransactionStatus  事务具体运行状态

        

Spring的编程式事务管理

    

Spring的声明式的事务管理

    基于TransactionProxyFactoryBean的方式:劣势,需为每个方法配置一个

      

    基于tx/aop

      引入命名空间

        

         配置

           

      基于annotation

           

                 

    

原文地址:https://www.cnblogs.com/fg-fd/p/10044136.html