SpringBoot事务管理

本文介绍了事务的基本概念,重点讲解了SpringBoot中的事务管理,包括@Transactional注解的使用、不同propagation属性的作用以及事务传播的问题和解决方案,强调了事务隔离的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是事务

事务中包含一个或多个数据库操作命令,会把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。

二、SpringBoot中事务管理

1、通过在类或者方法上加上@Transactional注解,含义是spring事务管理,执行成功后会将事务提交,执行失败会回滚事务。

Transactional注解中常用属性 rollbackFor代表异常接收处理,

                                                propagation=Propagation.REQUIRES_NEW代表事务无论有没有发生都会新建一个事务

propagation=Propagation.REQUIRED如果先前有事务发生,则不建立当前新事务。

                                                

2、默认的异常接收是:运行时异常。可以通过在Transactional注解中加入rollbackFor = Exception.class代表含义是:接收所有的异常信息。

3、事务传播:含义是在一个事务当中调用其他外部类的方法,而在这个外部类也同样加入了注解Transactional进行事务管理。

4、如何操作事务传播:比如程序先执行事务A,而在方法A中调用了外部方法B,而在方法B中也进行了事务管理。在对事务A进行处理时候如果出现异常发生回滚现象,如果事务B注解Transactional没有进行配置propagation属性,这是事务B不会新建一个事务而是同事务A一起发生(简言之就是事务A中包含了B)。

                解决上述问题:可以在事务B注解中添加配置属性propagation = Propagation.REQUIRES_NEW 代表含义:不管事务B先前是否有事务发生,当事务B发生时候都会新建一个事务,达到事务分离效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值