通俗易懂的spring事务的传播机制讲解!
spring事务理解
前提两个都是事务的方法,并且两个方法会进行调用,调用方统一使用required
举例有两个方法:
- required
如果当前上下文存在事务,被调用方则加入该调用方的事务,没有的话就新建(指单独被调用时)一个事务
- supports
支持事务,上下文中有事务,被调用方则加入该事务,单独被调用时则没有事务
- mandatory
必须有事务,上下文有事务,被调用方则加入该事务,单独调用时直接抛异常,因为这时候没有一个活动的事务
- requires_new
被调用方会单独开启事务,调用方存在事务则将调用方挂起来,两个事务互不相干
- not_supported
总是非事务的方式执行,调用方调用时会直接被挂起
- never
总是非事务的方式执行,调用方调用时会直接抛异常
- nested
嵌套子事务,外层影响内层,内层不影响外层,除非外层try-catch并在catch中向外抛出异常
原文:https://blog.csdn.net/weixin_39625809/article/details/80707695
通俗易懂的spring事务的传播机制讲解!的更多相关文章
- 数据库的特性与隔离级别和spring事务的传播机制和隔离级别
首先数据库的特性就是 ACID: Atomicity 原子性:所有事务是一个整体,要么全部成功,要么失败 Consistency 一致性:在事务开始和结束前,要保持一致性状态 Isolation 隔离 ...
- Spring事务之传播机制
Spring事务传播机制:Spring在TransactionDefinition接口中规定了种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套时事务如何进行传播.即协调已经有事务标识的方法之 ...
- spring事务的传播机制新解
以下是事物的传播机制: @Transactional(propagation=Propagation.REQUIRED)如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)@Transacti ...
- Spring事务的传播行为 @Transactional(转)
Spring事务的传播行为 在service类前加上@Transactional,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务. Spring默认情况下会对运行期例 ...
- Spring事务的传播行为 @Transactional
Spring事务的传播行为http://blog.csdn.net/cuker919/article/details/5957209 在service类前加上@Transactional,声明这个se ...
- 关于事务,事务的特性,spring事务的传播特性
1.什么是事务: 事务是程序中一系列严密的操作,所有操作执行必须成功完成,否则在每个操作所做的更改将会被撤销,这也是事务的原子性(要么成功,要么失败). 2.事务特性: 事务特性分为四个:原子性(At ...
- Spring事务的传播特性和隔离级别
事务的几种传播特性1. PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务.如果没有事务则开启2. PROPAGATION_SUPPORTS: 如果存在一个事务,支持当前事务 ...
- Spring事务的传播行为
本文主要介绍下Spring事务中的传播行为. 事务传播行为介绍 Spring中的7个事务传播行为: |事务行为|说明 | |:--|:--| |PROPAGATION_REQUIRED | 支持当 ...
- Spring事务的传播:PROPAGATION_REQUIRED
PROPAGATION_REQUIRED-- 支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择. ServiceA { void methodA() { ServiceB.method ...
- Spring事务的传播行为分析
前言 最近项目有涉及到Spring事务,所以工作之余,想认真了解学习下Spring事务,查阅了若干资料,做了一个demo(PS:参考了大牛的). 现分享总结如下: 1.Spring 事务的简介 理解事 ...
随机推荐
- PLC入门笔记11
1.开关? 输入 拨杆开关.点动开关.常开.常闭开关 霍尔接近开关(磁场 N极导通 3线+-DC24V ).电容接近开关(非金属).电感接近开关(金属) 2.输入接线? NPN型,不需要外接电源,直接 ...
- 修改allure图标和标题
allure的logo更换步骤 1.找到allure安装目录,进入目录如:D:\Program Files\allure-2.17.3\plugins\custom-logo-plugin\stati ...
- Quartus II 18.x Modelsim仿真设置
Quartus II 18.x Modelsim仿真设置 本节内容介绍在如何在QuartusII 应用环境下设置modelsim仿真选项,并进行波形仿真.下面以四位乘法器为例介绍. 在QuartusI ...
- 学习Java的第一个代码
HelloWorld 新建一个文件夹 新建一个Java 文件后缀为java hello.java 编写代码 public class hello{ public static void main(St ...
- 微信小程序—标题栏
<template> <view :style="{paddingTop: statusBarHeight + 'px',background:bg}" clas ...
- 8、HTTP Cookie管理器
如果有需要加的cookie 就选择添加 如果没有特殊的 就默认就好了 第一次访问是没有cookie的 会话 session Cookie 是明文的 Session id 是保存在cookie里 ...
- Float浮动、 CSS定位(position)
Float浮动. CSS定位(position)1.CSS定位机制(1)普通流(标准流)-默认状态,元素自动从左往右,从上往下的排列(2)浮动-会使元素向左或向右移动,只能左右,不能上下-浮动元素碰到 ...
- linux命令基本操作
chmod 命令 : chmod -R 755 tools_command/ 解释 : -R 为递归遍历tools_command文件夹, chmod 755修改权限: 查看所有用户 1.cat /e ...
- TortoiseGit自动保存用户名和密码
在使用TortoiseGit上传时,会多次提示输入用户名和密码,采用以下方法解决 1.桌面点击右键 -> 选择TortoiseGit -> 点击settings 2.点击选择Git 3.点 ...
- Java--接口和抽象类有什么区别
他们都不能实例化对象,都可以包含抽象方法,而且抽象方法必须被继承的类全部实现. 区别: 1.抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实 ...