Spring事务传递机制和实现原理
Spring事务传递机制和实现原理
实现原理
- 在实行事务的类或者方法上面添加@Transactional注解
- Spring利用AOP思想机制,在方法执行前开启事务,在执行完成之后检查方法是否异常,根据执行结果决定是否回滚事务或者提交事务。
事务的传播行为可以由传播属性指定,Spring定义了7种传播行为。
PROPAGATION_REQUIRED:如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。
PROPAGATION_SUPPORTS:如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行。但是对于事务同步的事务管理器,PROPAGATION_SUPPORTS与不使用事务有少许不同。
PROPAGATION_MANDATORY:如果已经存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。
PROPAGATION_REQUIRES_NEW:总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。
PROPAGATION_NOT_SUPPORTED:总是非事务地执行,并挂起任何存在的事务。
PROPAGATION_NEVER:总是非事务地执行,如果存在一个活动事务,则抛出异常。
PROPAGATION_NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按TransactionDefinition.PROPAGATION_REQUIRED 属性执行。
事务的隔离级别
Spring事务传递机制和实现原理相关推荐
- spring上下文是什么意思_Java程序员只会CRUD连Spring事务传播机制都不懂?
AQS到底有什么用?难道就真的只是为了面试吗? 当然不是说AQS没用,如果你不是做基础架构或者中间件开发,你很难感受到AQS的威力.当然,学习很多时候,需要的是正向反馈,学了太多造火箭的东西,面试完就 ...
- 原创 | CRUD更要知道的Spring事务传播机制
来自:肥朝 AQS到底有什么用?难道就真的只是为了面试吗? 当然不是说AQS没用,如果你不是做基础架构或者中间件开发,你很难感受到AQS的威力.当然,学习很多时候,需要的是正向反馈,学了太多造火箭的东 ...
- Spring事务传播机制以及事务嵌套
Spring事务传播机制以及事务嵌套 Spring事务传播机制 事务嵌套场景 情景0: 场景1:不同类中,开启事务的方法调用没有开启事务的方法 场景2:不同类中,methodA方法嵌套methodB方 ...
- Spring 事务事件监控及实现原理
来源:https://my.oschina.net/zhangxufeng/blog/1976076 前面我们讲到了Spring在进行事务逻辑织入的时候,无论是事务开始,提交或者回滚,都会触发相应的事 ...
- Spring 事务管理机制概述
摘要: 一般地,用户的每次请求都对应一个业务逻辑方法,而一个业务逻辑方法往往包括一系列数据库原子访问操作,并且这些数据库原子访问操作应该绑定成一个事务来执行.然而,在使用传统的事务编程策略时,程序代码 ...
- spring事务-说说Propagation及其实现原理
前言 spring目前已是java开发的一个事实标准,这得益于它的便利.功能齐全.容易上手等特性.在开发过程当中,操作DB是非常常见的操作,而涉及到db,就会涉及到事务.事务在平时的开发过程当中,就算 ...
- Spring 事务用法示例与实现原理
关于事务,简单来说,就是为了保证数据完整性而存在的一种工具,其主要有四大特性:原子性,一致性,隔离性和持久性.对于Spring事务,其最终还是在数据库层面实现的,而Spring只是以一种比较优雅的方式 ...
- Spring事务传播机制和隔离级别
Spring有5种隔离级别,7种传播行为.这是面试常问的内容,也是代码中经常碰到的知识点.这些知识枯燥而且乏味,其中有些非常的绕.如果栽在这上面,就实在是太可惜了. @Transactional(is ...
- Java面试必问!Spring事务扩展机制(2)
TransactionAspectSupport#invokeWithinTransaction TransactionAspectSupport#invokeWithinTransaction 是 ...
最新文章
- Go 学习笔记(41)— Go 标准库之 encoding/base64 (编解码)
- SAP MM PR中的Fixed ID字段与MD04里PR单据号后的星号
- js实现模态框点击空白关闭
- java 构造方法
- jquery页面跳转带cookie_JS 如何创建、读取和删除cookie
- 从零开始写项目第七篇【搭建Linux环境】
- Eclipse+ADT+Android SDK 搭建安卓开发环境
- 使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南
- 给面试官讲明白:一致性Hash的原理和实践
- 必须声明标量变量_Excel VBA解读(136): 在用户定义函数中的变体、引用、数组、计算表达式、标量...
- “听话”的苏宁少东家
- 百度坐标转换GPS坐标
- 马哥linux-多年内部专用电子书,马哥linux-多年积累-无价之宝books haproxy.pdf
- nmos导通流向_技术参数详解,MOS管知识全录!
- 如何保障企业业务流程的落地实施?
- 人工智能史上的二次低谷——第一次低谷
- ChemDraw怎么激活?ChemDraw激活教程
- 白杨SEO:流量红利消失,现在都在各渠道做推广,我们还有必要做官方网站吗?怎么做呢?
- 订单可视化(智能制造、流程再造、企业信息化) 第七篇 经营班子掌舵,业务与开发分离,走向成功必备条件
- html摄氏度转换华氏度,摄氏温度与K氏和华氏是怎样换算的?