Spring注解-事务 @Transactio…

Spring 事务详解(注解方式) 事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部不成功,只有这两种情况。@Transactional注解 可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义。虽然@Transactional 注解可以作用于接口、接口方法、类以及类方法上,但是 Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。 阅读详情

spring 事务注解

默认遇到throw new RuntimeException("...");会回滚
需要捕获的throw new Exception("...");不会回滚

// 指定回滚
@Transactional(rollbackFor=Exception.class)
    public void methodName() {
       // 不会回滚
       throw new Exception("...");
    }
//指定不回滚
@Transactional(noRollbackFor=Exception.class)
    public ItimDaoImpl getItemDaoImpl() {
        // 会回滚
        throw new RuntimeException("注释");
    }

    // 如果有事务,那么加入事务,没有的话新建一个(不写的情况下)
    @Transactional(propagation=Propagation.REQUIRED)
    // 容器不为这个方法开启事务
    @Transactional(propagation=Propagation.NOT_SUPPORTED)
    // 不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
    @Transactional(propagation=Propagation.REQUIRES_NEW)
    // 必须在一个已有的事务中执行,否则抛出异常
    @Transactional(propagation=Propagation.MANDATORY)
    // 必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)
    @Transactional(propagation=Propagation.NEVER)
    // 如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.
    @Transactional(propagation=Propagation.SUPPORTS)
   
   
@Transactional(propagation=Propagation.NESTED)
// readOnly=true只读,不能更新,删除
@Transactional (propagation = Propagation.REQUIRED,readOnly=true)
// 设置超时时间
@Transactional (propagation = Propagation.REQUIRED,timeout=30)
// 设置数据库隔离级别
@Transactional (propagation = Propagation.REQUIRED,isolation=Isolation.DEFAULT)

 

(SpringBoot)第十二章第一节:Spring事务和@Transactioal 事务:是用户定义的一个数据库操作序列。这些操作要么不做,要么全做,是一个不可分割的工作单位。例如在RDBMS中一个事务可以是一条SQL语句或整个程序。事务是数据库恢复和并发控制的基本单位事务和程序的区别:一般来说,一个程序中包含多个事务事务的定义:事务的开始与结束由用户显式控制。如果用户没有显式地定义事务,则由DBMS按默认规定自动划分事务。在SQL中,定义事务语句有以下三条:表示事务的开始COMMIT:表示事务的正常结束并提交事务的所有操作ROLLBACK:表示事务的结束,但没有正常结束,需要进行回滚。 阅读详情

相关推荐

GNSS气象学入门:从ZTD到PWV的水汽反演全流程解析(含精度评估)

本文详细解析了GNSS气象学中从ZTD到PWV的水汽反演全流程,包括基础概念、反演原理、数据处理步骤及精度评估方法。通过PRIDE软件和MATLAB代码示例,展示了如何高效提取ZTD数据并结合ERA5气象数据进行PWV计算,为气象研究和业务应用提供了实用指南。

weixin_28707365的博客 573

@Transaction 注解学习

spring中,事务管理机制主要有编程式事务和声明式事务2种。 1、编程式事务 在代码中手工管理事务的提交和回滚,代码侵入性强,耦合度高。 2、声明式事务 基于AOP面向切面的(通过动态代理实现),将具体业务和事务处理部分解耦,代码侵入性低。 有两种实现方式: 1、基于TX和AOP的xml配置文件方式 2、基于注解@Transactional方式实现 3、@Transactional 可以作用在接口、类、方法上 1、作用在类上,表示该类的所有public方法都配置相同的事务属性 2、作用在方法上,当类也配置

lzng168的博客 1313

基于紫光展锐平台的音频调用到hal层逻辑

基于紫光展锐平台的音频调用到hal层逻辑 1、数据流程图 AudioPolicyService和AudioFlinger的创建: 这两个服务都在audioserver中启动,文件路径: frameworks/av/media/audioserver/main_audioserver.cpp 从AudioFlinger和AudioPolicyService的创建,到output的打开,以及AudioFlinger开始往底层写入数据的具体流程如下图: #mermaid-svg-kjHL4XWwkQXN6NdA

weixin_55053963的博客 1355

Spring Boot 声明式事务 @Transactional 的使用

正确开启方式:

风香枫 641

windows10 + wsl2安装docker

一、安装wsl https://docs.microsoft.com/zh-cn/windows/wsl/install-win10 1.1以管理员身份运行powershell 1.2执行如下命令 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 1.3重启电脑 1.4 重启电脑后,如果需要安装wsl2, 则安装官方文档继续后续操作,因我...

happytree001的博客 1569

Unity中Newtonsoft.Json的使用(一)

在Unity中下载Newtonsoft.Json,并进行序列化和反序列化

洛苍离的博客 1万+

Spring事务注解

spring注解事务特性介绍,失效场景总结

严文文 Chris 8969

保姆级教程:用PROGRAM_FTDI搞定Xilinx FPGA的JTAG调试器(基于FT232/FT2232/FT4232)

本文详细介绍了如何使用FT232/FT2232/FT4232系列芯片通过PROGRAM_FTDI工具配置Xilinx FPGA的JTAG调试器。从芯片选型、驱动安装到固件烧写和Vivado验证,提供了完整的实操指南和避坑要点,帮助开发者低成本实现高效调试。

weixin_29271053的博客 2156

Spring——事务注解@Transactional【建议收藏】

在某些业务场景下,如果一个请求中,需要同时写入多张表的数据或者执行多条sql,为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到事务;Spring框架下,我们经常会使用@Transactional注解来管理事务; 本篇介绍Spring的事务注解@Transactional相关的知识,包括事务简介、事务隔离级别、Spring声明式事务实现原理、事务的传播行为、@Transactional的用法及注意事项等,属于Spring的常用注解之一,需要掌握相关知识点;...

娜娜米的博客 4万+

Agentic AI为教育行业赋能,提示工程架构师解析应用潜力

然而,即便是最先进的 LLMs,在面对复杂、动态、需要持续规划和调整的教育场景时,也常常显得力不从心,它们更像是强大的“问答机器”,而非真正意义上的“学习伙伴”或“教学助手”。在教育场景中,传统的 AI 工具可能只能回答学生提出的特定问题,或者根据预设的规则推送一些学习材料。无论您是教育技术领域的开发者、产品经理,还是一线的教育工作者、教育管理者,抑或是对 AI 教育应用充满好奇的研究者,本文都将为您提供宝贵的 insights,助您把握 Agentic AI 时代教育创新的脉搏。

架构师的AI之路,分享AI应用开发架构的学习与实践。 466

lammps教程:MS转data文件出错原因分析及解决办法

使用ms建模是lammps建模的一种重要方法,但是ms建模转换为data过程中经常会出现各种各样的错误。 ms模型转data文件流程分两部分,一是ms建模、forcite设置力场并导出car文件,二是msi2lmp将car转为data文件。 任何一个环节出错都会导致无法得到data文件,最容易出错的是forcite力场设置环节。 forcite力场设置出错原因有很多,一个原因是缺乏某类原子的力场参数。 msi2lmp软件只能转换cvff或pcff力场的car文件,因此,如果力场中不包含某类原子的参数,在设置

lammps_jiayou的博客 5062

八、Spring事务(注解方案)

Spring事务(注解方案)

天行健,君子以自强不息 2565

Python 爬虫实战:爬取股票数据做 K 线图可视化

摘要:本文介绍基于Python的股票数据爬取与K线图可视化全流程技术方案。通过Requests库抓取东方财富网股票数据,使用Pandas进行清洗处理,并利用mplfinance库实现专业K线图绘制。文章详细讲解了数据爬取接口分析、反爬策略配置、K线图绘制方法(包含基础K线图和带均线的进阶版本),以及核心统计指标计算。该方案可应用于股票价格趋势分析,为投资决策提供数据支持,同时强调了数据使用的合规性和技术优化方向。

2503_91057718的博客 2046

【Spring】事务和@Transactional注解

结果:两个函数对数据库的操作都回滚了,因为 A被标记为 @Transactional,当它被调用时,会开启一个事务,当 A调用 B时,因为 B没有事务控制,所以它将直接在当前的事务上下文中执行。因为方法 A 运行在没有事务的上下文中,方法 B 的 @Transactional 注解不会生效,如果方法 B 抛出异常,方法 A 也会捕获到这个异常,但不会导致任何事务回滚,因为方法 A 没有事务控制。如果方法 A 有事务,方法 B 将创建一个新的事务,方法 A 的事务会被挂起。如果没有,则创建一个新的事务。

Andy_奋斗的博客 2725

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Spring中@Transcation原理、注意事项

一、原理 spring事务有两种实现方式,基于jdk动态代理实现、基于cglib实现。spring默认基于jdk动态代理,springboot貌似2.x以后默认是使用cglib,当然选择使用哪种方式都是可配置的。无论使用哪种方式其原理简单来说就是 运行时动态生成代理类、加载该类、执行增强后的代理类的方法。 jdk动态代理是基于接口生成接口的实现类,接口没有的方法或者private、protect...

heroking 3255

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

@Transactional 注解使用详解

@Transactional 的作用范围 方法 :推荐将注解使用于方法上,不过需要注意的是:该注解只能应用到 public 方法上,否则不生效。 类 :如果这个注解使用在类上的话,表明该注解对该类中所有的 public 方法都生效。 接口 :不推荐在接口上使用。 @Transactional 的常用配置参数总结(只列出了 5 个我平时比较常用的): 属性名 说明 propagation 事务的传播行为,默认值为 REQUIRED,可选的值在上面介绍过 isolation 事务的隔离级

JohnMin的博客 1万+

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

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

Spring 学习笔记之 @Transactinal实现原理

主要借助 Spring 的 AOP(面向切面编程)机制来达成事务管理。当一个方法被注解修饰时,Spring 会在该方法执行前后添加事务相关的处理逻辑,以保证方法内的数据库操作在一个统一的事务环境中进行。注解通过 Spring 的 AOP 机制,在目标方法执行前后插入事务管理逻辑,从而实现了数据库事务的自动管理。它大大简化了事务处理的代码,提升了开发效率。

freeRoad 891

JEECG中的数据库事务

Java中的数据库事务简介Java中的应用通过代码的方式来实现数据库事务通过注解的方式来实现数据库事务@Transactional(propagation = Propagation.REQUIRED)@Transactional(propagation = Propagation.SUPPORTS )@Transactional(propagation = Propagation.REQUIRES_NEW) 简介 简介及代码,补入这篇博客。 Java中的应用 通过代码的方式来实现数据库事务 补入这篇博客

u010804417的博客 858

@Transactional注解

事务的传播机制是指如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。即:在执行一个@Transactinal注解标注的方法时,开启了事务;例如用户新增需要插入用户表、用户与岗位关联表、用户与角色关联表,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有操作, 这样可以防止出现脏数据,就可以使用事务让它实现回退。@Transactional注解只能应用到public可见度的方法上,可以被应用于接口定义和接口方法,方法会覆盖类上面声明的事务。

圆圆学习笔记的博客 1459

mysql 的子查询会导致锁表? lock wait timeout exceeded; try restarting transactio的处理

mysql 的子查询会导致锁表? lock wait timeout exceeded; try restarting transactio的处理 问题 “lock wait timeout exceeded; try restarting transactio” 是非常常见的mysql异常。意思就是获取锁失败了,无法执行操作。 如何查看到底是哪个锁导致的,网上文章一搜一大把,不赘述。其...

frog4的专栏 3458

@Transaction

https://www.cnblogs.com/yepei/p/4716112.html

奔跑的猪皮 2452

Spring @Transactional原理及使用

转自:http://tech.lede.com/2017/02/06/rd/server/SpringTransactional/ 本文主要讨论Spring声明式事务中使用注解@Transactional的方式、原理及注意事项,主要包括以下内容: Spring @Transactional的配置使用;Spring @Transactional的传播行为和隔离级别;Sprin

Reid的专栏 2404

@Transactional 事务注解

JAVA事务处理

oBuKaoPu1的博客 706

Spring 之 @Transaction 详解

介绍 @Transaction 是 Spring 提供用来控制事务回滚/提交的一个注解,让我们从编程式注解转换到声明式注解。在这里就不做过多的撰述,今天主要来看下 @Transaction 里面的属性使用。 作用域 @Transaction 可以写在类、接口、方法上 当标注在类上的时候:表示给该类所有的 public 方法添加上 @Transaction 注解 当标注在接口上的时候:Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。像 CGLib 动

岁月安然 3万+

@transactional

@transactional @Transactional 是声明式事务管理 编程中使用的注解 基于aop面向切面编程 声明式事务分为两种一种基于TX和AOP的xml配置方式,二种就是基于@transcational注解 1.添加位置 接口实现类或者接口实现方法上,而不是接口中 访问权限 public修饰的方法才起作用, 作用于方法:当类配置了@Transactional,方法也配置了@Transactional,方法的事务会覆盖类的事务配置信息。 作用于接口:不推荐这种使用方法,因为一旦标

qq_42794947的博客 801
上一篇: jeecg入门-代码生成文件配置
下一篇: SVN Checkout (Time&nbs…
jarry.liu
博客等级 码龄16年 36粉丝 304原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jarry.liu

如果对您有帮助,鼓励下博主吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值