Spring事务传递机制和实现原理

实现原理

  • 在实行事务的类或者方法上面添加@Transactional注解
  • Spring利用AOP思想机制,在方法执行前开启事务,在执行完成之后检查方法是否异常,根据执行结果决定是否回滚事务或者提交事务。
事务的传播行为可以由传播属性指定,Spring定义了7种传播行为。
  1. PROPAGATION_REQUIRED:如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。

  2. PROPAGATION_SUPPORTS:如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行。但是对于事务同步的事务管理器,PROPAGATION_SUPPORTS与不使用事务有少许不同。

  3. PROPAGATION_MANDATORY:如果已经存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。

  4. PROPAGATION_REQUIRES_NEW:总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。

  5. PROPAGATION_NOT_SUPPORTED:总是非事务地执行,并挂起任何存在的事务。

  6. PROPAGATION_NEVER:总是非事务地执行,如果存在一个活动事务,则抛出异常。

  7. PROPAGATION_NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按TransactionDefinition.PROPAGATION_REQUIRED 属性执行。

事务的隔离级别

Spring事务传递机制和实现原理相关推荐

  1. spring上下文是什么意思_Java程序员只会CRUD连Spring事务传播机制都不懂?

    AQS到底有什么用?难道就真的只是为了面试吗? 当然不是说AQS没用,如果你不是做基础架构或者中间件开发,你很难感受到AQS的威力.当然,学习很多时候,需要的是正向反馈,学了太多造火箭的东西,面试完就 ...

  2. 原创 | CRUD更要知道的Spring事务传播机制

    来自:肥朝 AQS到底有什么用?难道就真的只是为了面试吗? 当然不是说AQS没用,如果你不是做基础架构或者中间件开发,你很难感受到AQS的威力.当然,学习很多时候,需要的是正向反馈,学了太多造火箭的东 ...

  3. Spring事务传播机制以及事务嵌套

    Spring事务传播机制以及事务嵌套 Spring事务传播机制 事务嵌套场景 情景0: 场景1:不同类中,开启事务的方法调用没有开启事务的方法 场景2:不同类中,methodA方法嵌套methodB方 ...

  4. Spring 事务事件监控及实现原理

    来源:https://my.oschina.net/zhangxufeng/blog/1976076 前面我们讲到了Spring在进行事务逻辑织入的时候,无论是事务开始,提交或者回滚,都会触发相应的事 ...

  5. Spring 事务管理机制概述

    摘要: 一般地,用户的每次请求都对应一个业务逻辑方法,而一个业务逻辑方法往往包括一系列数据库原子访问操作,并且这些数据库原子访问操作应该绑定成一个事务来执行.然而,在使用传统的事务编程策略时,程序代码 ...

  6. spring事务-说说Propagation及其实现原理

    前言 spring目前已是java开发的一个事实标准,这得益于它的便利.功能齐全.容易上手等特性.在开发过程当中,操作DB是非常常见的操作,而涉及到db,就会涉及到事务.事务在平时的开发过程当中,就算 ...

  7. Spring 事务用法示例与实现原理

    关于事务,简单来说,就是为了保证数据完整性而存在的一种工具,其主要有四大特性:原子性,一致性,隔离性和持久性.对于Spring事务,其最终还是在数据库层面实现的,而Spring只是以一种比较优雅的方式 ...

  8. Spring事务传播机制和隔离级别

    Spring有5种隔离级别,7种传播行为.这是面试常问的内容,也是代码中经常碰到的知识点.这些知识枯燥而且乏味,其中有些非常的绕.如果栽在这上面,就实在是太可惜了. @Transactional(is ...

  9. Java面试必问!Spring事务扩展机制(2)

    TransactionAspectSupport#invokeWithinTransaction TransactionAspectSupport#invokeWithinTransaction 是 ...

最新文章

  1. Go 学习笔记(41)— Go 标准库之 encoding/base64 (编解码)
  2. SAP MM PR中的Fixed ID字段与MD04里PR单据号后的星号
  3. js实现模态框点击空白关闭
  4. java 构造方法
  5. jquery页面跳转带cookie_JS 如何创建、读取和删除cookie
  6. 从零开始写项目第七篇【搭建Linux环境】
  7. Eclipse+ADT+Android SDK 搭建安卓开发环境
  8. 使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南
  9. 给面试官讲明白:一致性Hash的原理和实践
  10. 必须声明标量变量_Excel VBA解读(136): 在用户定义函数中的变体、引用、数组、计算表达式、标量...
  11. “听话”的苏宁少东家
  12. 百度坐标转换GPS坐标
  13. 马哥linux-多年内部专用电子书,马哥linux-多年积累-无价之宝books haproxy.pdf
  14. nmos导通流向_技术参数详解,MOS管知识全录!
  15. 如何保障企业业务流程的落地实施?
  16. 人工智能史上的二次低谷——第一次低谷
  17. ChemDraw怎么激活?ChemDraw激活教程
  18. 白杨SEO:流量红利消失,现在都在各渠道做推广,我们还有必要做官方网站吗?怎么做呢?
  19. 订单可视化(智能制造、流程再造、企业信息化) 第七篇 经营班子掌舵,业务与开发分离,走向成功必备条件
  20. html摄氏度转换华氏度,摄氏温度与K氏和华氏是怎样换算的?

热门文章

  1. 在logopond中看到的优秀设计随想
  2. Android热补丁动态修复技术
  3. 新媒体管家plus(新媒体管家插件) v6.66官方最新版
  4. Prometheus guage类型rate(变化率)计算
  5. 微盟遭员工“删库跑路”:SaaS服务暂停,或涉及300万商户
  6. 三位分节制顺口溜_小学数学学习中36类顺口溜,说给孩子听
  7. R中并行计算-多线程运行
  8. 企业微信支付的接口开发总结
  9. SLAM笔记——turtlebot传感器ekf实验实验
  10. Java实现第八届蓝桥杯迷宫