事务传播性是什么?

基于springboot医院医疗仪器管理系统 基于Spring Boot的医院医疗仪器管理系统是一款专门为医院设计的高效管理工具。 阅读详情
        我们都知道事务的概念,那么事务的传播特性是什么呢?(此处着重介绍传播特性的概念,关于传播特性的相关配置就不介绍了,可以查看spring的官方文档)

        在我们用SSH开发项目的时候,我们一般都是将事务设置在Service层 那么当我们调用Service层的一个方法的时候它能够保证我们的这个方法中执行的所有的对数据库的更新操作保持在一个事务中,在事务层里面调用的这些方法要么全部成功,要么全部失败。那么事务的传播特性也是从这里说起的。
        如果你在你的Service层的这个方法中,除了调用了Dao层的方法之外,还调用了本类的其他的Service方法,那么在调用其他的Service方法的时候,这个事务是怎么规定的呢?我必须保证我在我方法里调用的这个方法与我本身的方法处在同一个事务中,否则如何保证事物的一致性?

        事务的传播特性就是解决这个问题的,“事务是会传播的”在Spring中有针对传播特性的多种配置我们大多数情况下只用其中的一种: PROPGATION_REQUIRED:
        这个配置项的意思是说当我调用service层的方法的时候开启一个事务(具体调用那一层的方法开始创建事务,要看你的aop的配置),那么在调用这个service层里面的其他service的时候,如果当前方法产生了事务就用当前方法产生的事务,否则就创建一个新的事务。这个工作使由Spring来帮助我们完成的。
        默认情况下当发生RuntimeException的情况下,事务才会回滚,所以要注意一下,如果你在程序发生错误的情况下,有自己的异常处理机制定义自己的Exception,必须从RuntimeException类继承,这样事务才会回滚!
手把手带你搞懂电压跌落测试DIP 砖一用4分钟时间手把手带你搞懂电压跌落测试DIP,希望对你有用~ 阅读详情

相关推荐

使用autodl服务器运行CasMVSNet以及使用colmap产生的数据

MVSNet学习

qq_44708206的博客 3258

四:Spring声明式事务

目录 1、Spring JdbcTemplate 2、声明式事务 1、设置隔离级别(isolation) 2、事务传播 3、基于xml的事务配置 相关代码Demo下载:tuling_proxy.rar 什么是事务 把一组业务当成一个业务来做;要么都成功,要么都失败,保证业务操作完整的一种数据库机制。 1、Spring JdbcTemplate 在spring中为了更加方便的操作JDBC,在JDBC的基础之上定义了一个抽象层,此设计的目的是为不同类型的JDBC操作提供模板.

Xx__WangQi的博客 552

OsgEarth —— 笔记6 - 开发阶段加入漫游飞行(附源码)

效果      视频地址   源码 源码下载请私信   代码      代码相关内容:           OSG —— 笔记1 - 指令调用模型           OsgEarth —— 笔记1 - 创建地球的earth文件           OsgEarth —— 笔记2 - Qt窗口加载earth地球(附源码)           OsgEarth —— 笔记3 - 为地

1876

Java 事务传播(Transactional)

事务传播是Spring特有的概念,是基于Spring AOP技术实现的,原本的方法不具备事务的功能,运用Spring AOP的方式动态的增加了事务的功能,来确保数据库的数据的一致

yy139926的博客 5595

事务传播

1.Propagation.REQUIRED 方法被调用时自动开启事务,在事务范围内使用则使用同一个事务,否则开启新事务即如果在该Propagation.REQUIRED事务下被调用,则则用Propagation.REQUIRED事务,否则使用自己的新的事务 @Test public void test{ addStudent(); } @Transactional(propagati...

王如霜 891

spring七种事务传递机制及其原理

事物的传播机制

一人码农 2884

spring事务传播

spring事务传播 1、事务传播 研究的是多个事务存在时的处理策略 1)REQUIRED:如果存在一个事务,则支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 2)SUPPORTS:如果存在一个事务,支持当前事务,如果当前没有事务,就以非事务方式执行。 3)MANDATORY:如果存在一个事务,支持当前事务,如果当前没有事务,就抛出异常。 4)REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。 5)NOT_SUPPORTED:以非事务方式执行操作,如果当前存在

weixin_45295678的博客 1045

Spring 七种事务传播介绍

方法B的事务传播设置为REQUIRES_NEW,当被方法A调用时,此时方法A的事务1会被挂起,方法B开启自己的事务2,然后执行insert,此时并没有提交;b.调用TestBServcie的B方法,由于B方法也声明了事务,并且传播是REQUIRED,所以方法B的事务,合并到方法A开启的事务中。方法A调用方法B时,方法B的传播为NOT_SUPPORTED,不支持事务,然后挂起外层方法A的事务,方法B以非事务的方式执行insert。内层方法B抛出异常,则会回滚方法B的所有操作,但不影响外层事务方法A。

liuwqc的博客 1541

Spring事务传播

所谓的事务传播是指:当多个含有事务方法嵌套调用时,这些方法处理事务的规则 比如:当事务方法A调用事务方法B时,内层事务方法B会合并到外层调用者A方法的事务中,还是会新开起自己的事务。另外如果合并到外层事务,那么内层事务回滚后,外层方法会不会回滚,这些就是由spring事务传播规则控制的。 Spring事务传播处理这种嵌套事务的行为一共定义了7种处理方式: PROPAGATION_REQUIRED PROPAGATION_REQUIRED_NEW PROPAGATION_SUPPORT PRO.

qq_43413774的博客 1014

Spring - 捋明白 Spring 事务、隔离传播

事务的重要不言而喻,Spring 对事务也提供了非常丰富的支持,各种支持的属应有尽有。 然而很多小伙伴知道,这里有两个属特别绕: 隔离 传播 1、什么是事务 数据库事务是指作为单个逻辑工作单元执行的一系列操作,这些操作要么一起成功,要么一起失败,是一个不可分割的工作单元。 在我们日常工作中,涉及到事务的场景非常多,一个 service 中往往需要调用不同的 dao 层方法,这些方法要么同时成功要么同时失败,我们需要在 service 层确保这一点。 说到事务最典型的案例

19万+

java spring 事务传播_实战Spring事务传播与隔离

一、事务传播1.1 什么是事务传播事务传播一般在事务嵌套时候使用,比如在事务A里面调用了另外一个使用事务的方法,那么这俩个事务是各自作为独立的事务执行提交,还是内层的事务合并到外层的事务一块提交那,这就是事务传播要确定的问题。下面一一介绍比较常用的事务传播。首先奉上事务拦截器TransactionInterceptor事务处理流程图:拦截器.png1.2 PROPAGATION_RE...

weixin_32480007的博客 421

被我忽略的事务传播

今天在回顾之前学的事务时,有一个点完全遗忘了。那就是事务传播事务的 propagation 属。 举个例子: 上淘宝买东西,我买本 【Spring 揭秘】,就在下单的时候,我支付宝钱不够,支付失败,这个支付的过程肯定带事务的,支付失败就代表之前的操作都会回滚,数据不进入数据库【其实是会进的,在未付款订单里面,等待付款】,我要讲的是,我浏览商品的这个记录也应该在...

ddd77197的博客 146

Spring的事务传播

在项目中经常需要使用log4jlog4j基本概念log4j配置配置详解 log4j基本概念   在写代码有时需要打印日志,比如:调试代码;应用出现问题,进行分析、定位、解决问题的时候;想将日志信息作为离线的业务进行数据分析等等。最简单的打印日志的方式就是使用系统本身的输出语句,不过对于大多数需求这种方式都是不能满足的。使用日志框架的好处:方便、自在、功能强大能够满足各种需求。通过使用log4j,可...

ThreeAspects的博客 1247

事物的特传播及隔离级别

嵌套事务,底层将使用 Savepoint 形成嵌套事务。如果没有,就新建一个事务;如果有,就在当前事务中嵌套其他事务

没有简介 1195

面试中经常要问到的, Spring事务的传递是如何区分的呢?

1. 概念介绍本地事务数据库事务, 默认事务为自动提交, 因此如果一个业务逻辑类中有多次数据库操作将无法保证事务的一致。spring事务对本地事务操作的一次封装, 相当于把使用jdbc...

故事凌 456

@Transactional事务注解的传播

@Transactional事务注解的传播

qq_40549814的博客 3949

Spring(四)——事务传播(介绍、例子解释、等级介绍、xml 配置事务传播、Java / xml 配置事务隔离、事务超时属/只读属事务回滚规则、@Transactional 注解使用细节)

Spring(四)——事务传播(介绍、例子解释、等级介绍、代码实现) 一、事务传播 1、事务传播介绍 Spring相应的定义了一个枚举类来方便使用事务传播行为: 2、事务传播例子解释 还是用经典的转账例子: 以前转账都是在 dao 层写好各自的数据库逻辑,然后 service 层调用 dao 层的两个方法,完成一方减钱另一方加钱的逻辑,事务的话就是把这两个逻辑包裹起来。 现在就不用这个方法;在减钱的逻辑里面调用加钱的方法,这么一来只需要调用减钱的逻辑,就自然而然的使用到加钱逻辑,一套方法走下来就

qq_41824825的博客 941

详解事务传播

事务传播汇总: required:使用当前的事务,如果当前没有事务,则创建一个事务,子方法是必须运行在一个事务中的,如果当前存在事务,则加入这个事务,成为一个整体。 supports:如果当前有事务,则使用事务,如果当前没有事务,则不使用事务 mandatory:该传播强制必须存在一个事务,如果不存在,则抛出异常 required_new:如果当前有事务,则挂起该事务,并且自己创建一个新的事务给自己使用;如果当前没有事务,则同required not_support:如果当前有事务,..

weixin_43434182的博客 3325

事物的七种传播

事务传播有7种: 1. Propagation_required 支持当前事务,如果当前没有事务,就新建一个事务。 2. Propagation_supports 支持当前事务,如果当前没有事务,就以非事务方式执行。 3. Propagation_mandatory 支持当前事务,如果当前没有事务,就抛出异常。 4. Propagation_required_new 新建事务,如果当前存在事...

建仔的博客专栏 2922

Spring中的事务传递小记

在Spring中,事务的传递主要由Propagation属控制,它定义了当方法被其他方法调用时,应该如何处理事务。方法使用了SUPPORTS传播级别,这意味着如果当前存在事务,那么该方法将在该事务中运行,但如果当前没有事务,那么该方法将以非事务方式运行。方法使用了REQUIRES_NEW传播级别,这将总是创建一个新的事务,即使在调用它的方法已经在它自己的事务中运行。时存在一个事务,那么这个方法将在相同的事务中运行,否则将开始一个新的事务。方法使用了REQUIRED传播级别,如果在调用。

2301_76508397的博客 472

基于Python与STK11的多智能体强化学习卫星任务调度系统实现

【项目标题】:Python与STK11融合的多智能体强化学习卫星任务规划实验 【目标受众】:适合有意跨领域拓展技能的技术初学者或提升者。可作为毕业设计、课程作业、综合实训或前期课题研究。 【实验架构】: - 任务模块(mission.py)定义了任务对象类,实例化时自动生成地理坐标等参数,需调整属时可直接在类内修改。 - 任务生成模块(create_mission.py)批量生成随机任务数据,输出至data/missions.csv,支持通过参数调节生成数量。 - 访问计算模块(compute_access.py)解析任务文件,逐项核算卫星可观测时间窗口,结果保存于data/access.csv。 - 系统需预先启动STK11仿真环境,并加载scenario目录下的RLSTAR场景配置文件。 【技术特】: 通过动态任务池构建与访问时间耦合计算,建立卫星资源分配与强化学习决策的关联模型。任务坐标采用均匀分布生成,访问分析基于轨道力学原理,强化学习智能体通过奖励函数优化任务调度策略。实验数据以结构化表格存储,支持后续算法迭代与场景扩展。资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!

基于C开发的微信聊天记录备份与分析工具-支持64位微信版本非直接地址获取Key工作区多账号切换HTML与TXT批量导出聊天频率统计全消息搜索文本图片语音分享链接群聊系统消息文件引.zip

基于C开发的微信聊天记录备份与分析工具_支持64位微信版本非直接地址获取Key工作区多账号切换HTML与TXT批量导出聊天频率统计全消息搜索文本图片语音分享链接群聊系统消息文件引.zip毕业设计课题--航空订票系统

上一篇: session Bean是什么?
下一篇: Spring事务管理的感性理解
haozhugogo
博客等级 码龄10年 90粉丝 47原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值