事务学习总结(2)——spring事务
一、spring事务:
spring针对事务的解决方案,在基础的隔离性基础上,又增加了事务传播行为、只读事务、事务超时的机制。
二、事务传播:
其实就是两个事务传播。
1、方法A有事务、方法B没有事务;
2、方法A有事务、方法B有事务;
3、方法A没有事务、方法B有事务;
4、方法A没有事务、方法B没有事务;
对应的有7中方式,4种对应上面的,3种特殊的。比如方法A的事务,
- 如果没有,就开启一个事务;如果有,就加入当前事务(方法A加入到方法B)。这就是 PROPAGATION_REQUIRED,它也是 Spring 提供的默认事务传播行为,适合绝大多数情况。
- 如果没有,就开启一个事务;如果有,就将当前事务挂起。这就是 RROPAGATION_REQUIRES_NEW,意思就是创建了一个新事务,它和原来的事务没有任何关系了。
- 如果没有,就开启一个事务;如果有,就在当前事务中嵌套其他事务。这就是 PROPAGATION_NESTED,也就是传说中的“嵌套事务”了,所嵌套的子事务与主事务之间是有关联的(当主事务提交或回滚,子事务也会提交或回滚)。
- 如果没有,就以非事务方式执行;如果有,就使用当前事务。这就是 PROPAGATION_SUPPORTS,这种方式非常随意,没有就没有,有就有,有点无所谓的态度,反正我是支持你的。
- 如果没有,就以非事务方式执行;如果有,就将当前事务挂起。这就是 PROPAGATION_NOT_SUPPORTED,这种方式非常强硬,没有就没有,有我也不支持你,把你挂起来,不鸟你。
- 如果没有,就以非事务方式执行;如果有,就抛出异常。这就是 PROPAGATION_NEVER,这种方式更猛,没有就没有,有了反而报错,确实够牛的,它说:我从不支持事务!
- 如果没有,就抛出异常;如果有,就使用当前事务。这就是 PROPAGATION_MANDATORY,这种方式可以说是牛逼中的牛逼了,没有事务直接就报错,确实够狠的,它说:我必须要有事务!
三、spring事务其他特性:
Spring 给我们带来了事务传播行为,这确实是一个非常强大而又实用的功能。除此以外,也提供了一些小的附加功能,比如:
- 事务超时(Transaction Timeout):为了解决事务时间太长,消耗太多的资源,所以故意给事务设置一个最大时常,如果超过了,就回滚事务。
- 只读事务(Readonly Transaction):为了忽略那些不需要事务的方法,比如读取数据,这样可以有效地提高一些性能。
四:总结:
事务学习总结(2)——spring事务相关推荐
- 布式事务实践 解决数据一致性 Spring事务机制
Spring事务机制 介绍Spring的事务机制.事物抽象.内部事务和外部事物,以及常用的几种事务管理的实现,包括DataSource.JPA.JMS.JTA都通过实例进行说明.还有XA以及两阶段提交 ...
- mysql与spring隔离级别不同_mysql事务隔离级别与spring事务隔离级别的区别
mysql事务隔离级别与spring事务隔离级别的区别: 脏读:为什么会出现脏读,因为你对数据库的任何修改都会是立即生效的,至于别人能不能看到主要取决与你 是否加锁了,数据库的执行与事务没有关系,事务 ...
- 学习笔记(Spring事务管理)
maven中导入的依赖 学习时时候用的,所以就用的spring提供的orm组件 <dependencies><!--springioc--><dependency> ...
- 【Spring学习34】Spring事务(4):事务属性之7种传播行为
事务传播行为 什么叫事务传播行为?听起来挺高端的,其实很简单. 即然是传播,那么至少有两个东西,才可以发生传播.单体不存在传播这个行为. 事务传播行为(propagation behavior)指的就 ...
- 数据库事务原理详解-Spring 事务的传播属性
所谓spring 事务的传播属性,就是定义在存在多个事务同时存在的时候,spring 应该如何处理这些事务的行为.这些属性在TransactionDefinition 中定义,具体常量的解释见下表: ...
- MySQL事务隔离级别和Spring事务关系介绍
事务隔离级别介绍 隔离级别 脏读 不可重复读 幻读 未提交读(Read uncommitted) 可能 可能 可能 已提交读(Read committed) 不可能 可能 可能 可重复读(Repeat ...
- 什么是事务、事务特性、事务隔离级别、spring事务传播特性
1.什么是事务: 事务是指程序中的一个操作序列.其特点是:该序列的所有操作要么全部成功完成,要么只要有一个操作失败,则该序列所有操作都将被撤销.这也是事务的原子性(要么成功,要么失败). 2.事务特性 ...
- Spring事务管理一:Spring事务管理的优点
(翻译自spring-framework-reference.pdf 第四章 Data Access) 通常情况下,J2EE有2种事务管理方式:全局事务和本地事务,2种事务都比较明显的缺陷. 全局事务 ...
- java spring 事务传播_实战Spring事务传播性与隔离性
一.事务传播性 1.1 什么是事务的传播性 事务的传播性一般在事务嵌套时候使用,比如在事务A里面调用了另外一个使用事务的方法,那么这俩个事务是各自作为独立的事务执行提交,还是内层的事务合并到外层的事务 ...
- JDBC事务和JTA事务的区别 --包含spring事务 声明式事务
2019独角兽企业重金招聘Python工程师标准>>> 一.事务概述 事务表示一个由一系列的数据库操作组成的不可分割的逻辑单位,其中的操作要么全做要么全都不做. 与事务相关的操作主要 ...
最新文章
- java高级规范_Java高级规范之二
- Codeforces 977D: Divide by three, multiply by two(暴力)
- odoo10参考系列--ORM API 三(字段、继承与扩展、域和更新到新API)
- 2018.3.12 Leecode习题 给定一个整数数列,找出其中和为特定值的那两个数。
- python epoll多路复用技术_python网络编程——IO多路复用之epoll
- linux中副规则_linux中命名规则_学习笔记
- opencv摄像头捕获视频
- 闲谈IPv6-IPv4的TCP和NAT让互联网变得畸形
- 如何在php文件中插入图片,使用PHPWord读取Word文件并插入图片
- item在python中什么意思_Python中使用item()方法遍历字典的例子
- 【pyqt5学习】——添加菜单栏动作action,给动作触发triggered绑定事件
- 【HDL系列】Brent-Kung树形加法器原理与设计
- rrpp协议如何修改_RRPP快速环网保护协议
- 计算机老师新年贺卡祝福语,新年贺卡祝福语老师大全
- 怎么给图片添加水印?教你一个图片加水印小妙招
- 中国天气网爬虫数据可视化
- CSS中position属性(relative,absolute,fixed)和display中的inline-block
- VC++常用功能开发汇总
- 好用的磁盘清理软件Disk Diet for mac安装教程及功能介绍
- 【深度学习人类语言处理】1 课程介绍、语音辨识1——人类语言处理六种模型、Token、五种Seq2Seq Model(LAS、CTC、RNN-T、Neural Transducer、MoChA)