Spring事务管理

概述

事务管理:4大隔离级别+7大传播性+ReadOnly配置

  1. 4大隔离级别没啥好说的,和Mysql的事务级别一样:RU、RC、RR、序列化,默认隔离级别和数据库的一样

  2. 7大传播性:

  • PROPAGATION_REQUIRED:有就加入,没有就新建(默认)
  • PROPAGATION_SUPPORTS:有就加入,没有就非事务
  • PROPAGATION_NOT_SUPPORTED:有就挂起,非事务方式执行
  • PROPAGATION_REQUIRES_NEW :独立新建
  • PROPAGATION_MANDATORY:上下文必须要有事务
  • PROPAGATION_NEVER:上下文必须没有事务
  • PROPAGATION_NESTED : 嵌套事务 ,引入savepoint,子事务回滚并不会导致父事务回滚,父事务回滚,则整个事务回滚。
    比如一个大的下载任务,子任务如果尝试 电信网络下载失败,并不会导致整个下载失败,会尝试 联通网络下载某资源,所有子任务都下载完成,整个下载事务就提交。但是如果大的下载任务回滚的话,所有的子任务都会回滚
ServiceA {  
  //事务属性配置为 PROPAGATION_REQUIRED 
    void methodA() {  
        try {  
            ServiceB.methodB();  
        } catch (SomeException) {  
            // 执行其他业务, 如 ServiceC.methodC();  
        }  
    }  
  
}

ServiceB {  
    // 事务属性配置为 PROPAGATION_NESTED 
    void methodB() {  
    }  } 
  1. 设置readOnly属性,可以防止在读取的方法里面,误执行提交的方法,同时可以防止SQL注入
  2. 事务的回滚也要看Exception的级别,并不是所有的异常都会回滚,可以配置
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 事物的特性(ACID) 我们在使用JDBC或者Mybatis进行数据持久化操作时,我们的xml配置通常如下: 并发...
    Y了个J阅读 1,259评论 0 1
  • Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用,...
    EnigmaXXX阅读 675评论 0 0
  • Spring事务管理 所谓事务管理,其实就是“按照给定的事务规则来执行提交或者回滚操作”。 三个核心接口 Plat...
    萌妈码码阅读 581评论 0 1
  • 概要:2Spring事务管理接口(隔离级别,传播行为)、3接口介绍、4回滚原理 Spring事务的本质其实就是数据...
    hedgehog1112阅读 710评论 0 0
  • 列车缓缓地行驶在安静的山野中,内心却似悬着的石头,半吊着。天边的晚霞很美,有时候美景是需要一个人的时候才能欣赏到...
    大海和小象阅读 239评论 0 0