面试——Spring事务管理

心血来潮,手绘一张Spring学习思维脑图,概述/APO/依赖注入/bean/mvc/事务管理...(附带对应的面试真题) 心血来潮,手绘一张Spring学习思维脑图,概述/APO/IOC/依赖注入/bean/mvc(附带对应的面试真题) 更多关于Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构面试解析等等可以去这个Github链接地址:https://github.com/ThinkingHan/Java-not... 阅读详情

一、@Transactional

注意事项:如果动态代理使用的是jdk默认的动态代理,那么进行@Resource注入的时候,一定要给接口注入对象,而不是给实现类注入对象。因为aop底层是基于业务层接口通过反射构造实现类对业务方法进行执行的。所以必须注入接口。不然会报BeanNotRequiredException。

二、事务的管理

@Transactional(readonly=true),在业务方法上添加该注解

“只读事务”并不是一个强制选项,它只是一个“暗示”,提示数据库驱动程序和数据库系统,这个事务并不包含更改数据的操作,那么JDBC驱动程序和数据库就有可能根据这种情况对该事务进行一些特定的优化,比方说不安排相应的数据库锁,以减轻事务对数据库的压力,毕竟事务也是要消耗数据库的资源的。 

三、事务的传播

事务的传播:业务重构的时候需要业务方法调用业务方法,这就需要一个业务方法的事务传播到另一个业务方法中,整合为一个事务。


举例就是——一个业务方法内调用了其他的业务方法,也就是说一个业务是由多个事务(或者业务)组成并合成一个事务的。这时候我们为了保持事务的原子性与一致性,要在这多个业务方法上增加@Transactional注解。就可以保持事务的原子性与一致性。一旦这个业务中的某个业务发生了异常,那么所有事务都不会commi

四、事务传播(propagation)属性

重点掌握 Propagation.REQUIRED

  1. @Transactional(propagation=Propagation.REQUIRED)
    • 需要事务, 如果没有事务创建新事务, 如果当前有事务参与当前事务
  2. @Transactional(propagation=Propagation.MANDATORY)
    • 必须有事务, 如果当前没有事务就抛异常
  3. @Transactional(propagation=Propagation.NEVER)
    • 绝不, 绝对不能有事务, 如果在事务中调用则抛出异常
    • 在业务方法上打此标签,事务是具有原子性,但是事务不参与传播,一旦在别的业务方法中调用此业务方法,则会抛出异常
  4. @Transactional(propagation=Propagation.NESTED)
    • 嵌套, 必须被嵌套到其他事务中
  5. @Transactional(propagation=Propagation.NOT_SUPPORTED)
    • 不支持事务
  6. @Transactional(propagation=Propagation.SUPPORTS)
    • 支持事务, 如果没有事务也不会创建新事务
  7. @Transactional(propagation=Propagation.REQUIRES_NEW)
    • 必须是新事务, 如果有当前事务, 挂起当前事务并且开启新事务.

2021年Spring面试题70道 文章目录2021年Spring面试题70道前言Spring面试题内容1. 谈谈你对Spring的理解?2. Spring的特点是什么?3. Spring的优缺点是什么?4. Spring由哪些模块组成?5. 详细讲解一下核心容器(spring context应用上下文) 模块6. 解释AOP模块7. 解释JDBC抽象和DAO模块8. 解释对象/关系映射集成(ORM)模块9. 解释WEB模块10. Spring配置文件11. 什么是Spring IoC 容器。12. 控制反转(IoC)有什么作用13.控制反转 阅读详情

相关推荐

Spring面试题23:Spring支持哪些事务管理类型?Spring框架的事务管理有哪些优点?你更倾向用哪种事务管理类型?

Spring 支持以下几种事务管理类型:编程式事务管理、声明式事务管理、基于注解的事务管理、基于 XML 配置的事务管理、注解驱动的事务管理

小小鱼儿小小林的博客 764

Spring 事务(详解)

将⼀组操作封装成⼀个执⾏单元,要么全部成功要么全部失败。

qq_45559559的博客 1万+

13.5元低成本模拟乘法器AD633JN实测:手把手教你避开那些坑

本文以13.5元低成本模拟乘法器AD633JN为核心,通过实测搭建混沌电路的全过程,手把手教你避开电源灌流、芯片发烫、输入偏置等常见陷阱。文章详细剖析了AD633JN的比例因子、输入阻抗等关键特性,并提供了正确的电源去耦、信号耦合及稳定性布线方案,旨在帮助硬件爱好者与工程师高效利用这款高性价比芯片,节省调试时间与成本。

weixin_28432777的博客 519

Spring的事务详解

Spring的事务详解

h295928126的博客 5万+

图解转置卷积原理

声明:本文大部分搬运自【机器学习】详解 转置卷积 (Transpose Convolution) 感谢博主花与人间事同,本人只是在博主原创文章上做补充以及添加一些自己的理解。 1 转置卷积的背景 通常,对图像进行多次卷积运算后,特征图的尺寸会不断缩小。而对于某些特定任务 (如图像分割和图像生成等),需将图像恢复到原尺寸再操作。这个将图像由小分辨率映射到大分辨率的尺寸恢复操作,称为上采样 (Upsample),如下图所示: 上采样方法有很多,详见【图像处理】详解 最近邻插值、线性插值、双线性插值、双三次插值

laonafahaodange的博客 5685

基于深度学习实现实时视频目标检测

实时视频目标检测是计算机视觉领域的研究热点之一,其应用场景包括智能监控、自动驾驶、机器人视觉等多个领域。深度学习技术的快速发展使得实时视频目标检测变得更加可行和准确。本文提出一种基于深度学习实现的实时视频目标检测系统,使用Python和OpenCV作为开发工具,具有高效、准确和实时的特点。 本系统的主要需求是实现实时视频目标检测功能,可以在不同的应用场景中使用。具体的需求如下:2.1 视频输入本系统需要从摄像头或视频文件中获取实时视频流,并对视频流中的目标进行检测和跟踪。2.2 目标检测本系统需要使用深度学

分享毕业设计的案例和论文 1941

Spring的事务

1.什么是事务 事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操 作都失败 (2)典型场景:银行转账 lucy 转账 100 元 给 mary lucy 少 100,mary 多 100 事务四个特性(ACID) (1)原子性 一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做 (2)一致性 事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 (3)隔离性 一个事务的执行不能被其他事务干扰...

weixin_44895829的博客 1万+

Alipay 支付唤起 h5 测试

测试地址 https://recharge.apps.oppomobile.com/recharge-center/recharge/?from=message try { //唤起客户端快捷参数 var data = {"requestType":"SafePay","fromAppUrlScheme":"alipays","dataString":"h5_ro...

六桥风月IT随笔 1万+

Spring事务(超详细)

Spring事务简介 ➠事务作用: 在数据层保障一系列的数据库操作同时成功同时失败 ➠Spring事务作用: 在数据层或业务层保障一系列的数据库操作同成功同失败 接口: public interface PlatformTransactionManager{ void commit(TransactionStatus status)throws TransactionException; void rollback(TransactionStatus status)throws

m0_56188609的博客 2246

【无人机编队】基于matlab虚拟leader无人机编队仿真【含Matlab源码 3279期】

虚拟leader无人机编队仿真 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 837

uniapp - 最新详细实现web-view网页与安卓苹果App端之间互相通信功能,苹果app/安卓app平台与内嵌webview组件内的网页进行相互传值,内置网页与app双向实时通信,详细示例代码

uni-app,Android安卓,苹果ios,app,内嵌webview,第三方H5网页,app和web-view通信传值,web-view引入的页面向App主应用传递数据,App端与webview端相互通信,App端和H5端webview之间的通信,uniapp实现webview和APP之间的传值通信,如何互相传递对象数据,数据传递了接收不到,web-view页面向app内发送消息,监听传递的参数,uni-app和web-view页面相互传参,报错怎么办,跨域,屏幕空白出错,数据交互,解决手机物理返回按

🏆 前端领域优质创作者 4741

聊聊Spring中的事务

事务在实际开发中,重要性不言而喻。假设没有合理的事务控制,A向B发起了100元转账,A账户减100,B账户加100,但是转账中途因网络等因素导致程序异常(B账户更新记录没有成功,A账户更新成功),这就导致A账户无缘无故损失100元。。。这就是事务的一个简单例子,何时提交事务、何时事务回滚、合理设置事务的超时时间也是程序设计非常重要的一部分。.....................................................................................

laizhenghua的博客 3238

YOLOv8改进 | 主干篇 | 利用MobileNetV1替换Backbone(轻量化网络结构)

本文给大家带来的改进机制是MobileNetV1,其是专为移动和嵌入式视觉应用设计的轻量化网络结构。这些模型基于简化的架构,并利用深度可分离卷积构建轻量级深度神经网络,其引入了两个简单的全局超参数,用于在延迟和准确性之间进行有效的权衡。实验表明,MobileNets在资源和准确性的权衡方面表现出色,并在多种应用(如对象检测、细粒度分类、面部属性识别和大规模地理定位)中展现了其有效性,这个模型非常适合轻量化的读者来使用。适用检测目标:轻量化网络结构适合轻量化的读者。

Snu77的博客 3966

Java开发-面试题-0036-Spring 事务管理方式有哪些

Java开发-面试题-0036-Spring 事务管理方式有哪些

weixin_43873121的博客 963

Python量化交易:主流回测框架Backtrader入门详解

Python量化交易框架Backtrader入门指南 Backtrader是一个功能强大的Python量化回测框架,可以帮助交易者专注于策略逻辑而非基础设施。本文介绍了Backtrader的核心架构和使用方法: 框架优势:自动处理订单执行、手续费、滑点、仓位管理等复杂问题,采用事件驱动模式接近真实交易场景。 核心组件: Cerebro:控制中心 Strategy:交易策略 Data Feed:数据输入 Broker:模拟经纪商 Indicators:技术指标 使用流程: 安装:pip install bac

Science prince的博客 935

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring事务管理深度解析:从源码到实战的技术面试之旅

深入Spring Framework的spring-tx模块源码,通过面试对话的形式详细解析事务管理的核心原理、传播机制、异常处理等关键技术点,包含完整的源码分析和实战案例。

weixin_54726354的博客 447

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

面试:Spring事务管理

面试官问这样一个问题:spring如何进行事务管理? ......后面可想而知,面试得一蹋糊涂。 答案: spring的事务管理分为编程式的事务管理与声明式的事务管理; spring有三种事务管理的配置方式: 1 用TransactionFactoryBean代理dao事务处理; 2 用aop:config声明要进行事务增强的切面,用tx:advice声明具体方法的事务属性(传播行为,隔离级别,是否可读,抛出异常是否回滚)及应用的事务管理器; 3 用@Transactional注解配置事务管理

ouwaner的专栏 6726

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java面试-Spring 事务管理:编程式事务与声明式事务(@Transactional)

本文系统梳理了Spring事务管理的核心概念与实现方式,重点对比了编程式事务与声明式事务的优缺点。编程式事务通过TransactionTemplate或PlatformTransactionManager手动控制,灵活性高但代码侵入性强;声明式事务基于@Transactional注解和AOP实现,简洁优雅但灵活性稍逊。文章详细解析了@Transactional的20+个配置属性,包括传播行为、隔离级别等核心机制,并列举了8种常见的事务失效场景及解决方案。最后通过手写声明式事务切面揭示底层原理,帮助开发者深入

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

spring事务管理器的作用_【面试必问】Spring中的事务管理详解

在这里主要介绍Spring对事务管理的一些理论知识,实战方面参考上一篇博文:http://www.cnblogs.com/longshiyVip/p/5061547.html1. 事务简介:事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性事务就是一系列的动作,它们被当作一个单独的工作单元。这些动作要么全部完成,要么全部不起作用2. 事务的四个关键属性(ACID)...

weixin_39830906的博客 2509

Spring事务管理(应对面试)

1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱;然后ATM出1000元钱。这两个步骤必须是要么都执行要么都不执行。如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1000元;如果银行卡扣钱失败但是ATM却出了1000块,那么银行将损失1000元。所以,如果一个步骤成功另一个步骤...

qq_19729259的博客 6243

高级java每日一道面试题-2024年8月28日-框架篇[Spring篇]-你对Spring的事务管理了解多少?

编程式事务管理:通过手动编码来控制事务的生命周期。声明式事务管理:通过注解或 XML 配置来定义事务边界。Spring的事务管理通过提供声明式和编程式两种事务管理方式,以及丰富的事务属性和灵活的传播行为,为开发者提供了一种强大而灵活的事务管理机制。

qq_43071699的博客 1427

Spring的两种事务管理机制,面试这样答当场入职!

博主在最近的几次面试中,大中小厂都问到了Spring的事务相关问题,这块知识确实是面试中的重点内容,因此结合所看的书籍,在这篇文章中总结下。如果文章有什么需要改进的地方欢迎大佬提出,对大佬有帮助希望可以支持下哦~以下正文开始。

小威的博客 1万+

Spring事务管理的四种方式 2020面试必看

Spring事务管理的四种方式(以银行转账为例) 一、事务的作用 将若干的数据库操作作为一个整体控制,一起成功或一起失败。 原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性:指事务前后数据的完整性必须保持一致。 隔离性:指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离。 持久性:指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,即时数据库发生故障也不应该对其有任何影响。 ...

乡村非主流2020的博客 586

高级java每日一道面试题-2025年01月14日-框架篇[Spring篇]-Spring框架的事务管理有哪些优点?

Spring框架提供了一种简单的方式来管理事务,特别是通过声明式事务管理。这种方式允许开发人员将事务配置与业务逻辑分离,从而专注于业务逻辑的编写,而无需担心事务的管理和控制。这大大简化了代码的编写和维护,使得事务管理变得更加清晰和易于理解。

qq_43071699的博客 954

面试题:Spring中的事务管理详解

在这里主要介绍Spring对事务管理的一些理论知识,实战方面参考上一篇博文: http://www.cnblogs.com/longshiyVip/p/5061547.html 1. 事务简介: 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性 事务就是一系列的动作,它们被当作一个单独的工作单元。这些动作要么全部完成,要么全部不起作用 2. 事务的四个关键属性(...

keep12moving的博客 1132

阿里面试挂了,就因为面试官说我Spring 事务管理(器)不熟练?

事务管理,一个被说烂的也被看烂的话题,还是八股文中的基础股之一。但除了八股文中需要熟读并背诵的那些个传播行为之外,背后的“为什么”和核心原理更为重要。 ​ 写这篇文章之前,我也翻过一些事务管理器原理介绍文章,但大多都是生硬的翻译源码,一个劲的给源码加注释。这种源码翻译的文章虽说有帮助,但对读者来说体验并不好,很容易陷入代码的一些细节里,并不能帮助读者快速的了解事务管理的全貌,以及设计思路。 ​ 本文会从设计角度,一步步的剖析 Spring 事务管理的设计思路(都会设计事务管理器了,还能不不会用么?)

守夜人爱吃兔子的博客 515
上一篇: 面试——内存简单讲解
下一篇: 面试——什么是关系型数据库,表设计原则的三大范式
whathellll
博客等级 码龄11年 23粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值