事务管理-@TransActional

事务是一组操作的集合,具有原子性,要么全部成功,要么全部失败。关键操作包括开启事务、提交和回滚。在Spring中,@Transactional注解用于事务管理,标记在服务层方法上,控制事务的生命周期。异常处理默认只对RuntimeException回滚,但可配置特定异常类型触发回滚。此外,事务的传播行为定义了在一个事务中调用另一个事务时的行为模式。
摘要由CSDN通过智能技术生成

事务

概念:一组操作集合,是一个不可分割的单位,这些操作要么同时成功,要么同时失败

事务操作

  1. 开启事务(一组操作开始前,开启事务):start transaction / begin;
  2. 提交事务(操作全部成功后,执行提交):commit;
  3. 回滚事务(中间任何一个操作出现异常,回滚事务):rollbck

事务角色

事务管理员:发起事务方,通常是指在业务层接口开启事务,@TransActional
事务协调员:加入事务方,被发起事务方控制,多个事务加入后,再由事务管理员统一为一个事务,在spring中常指数据层方法,也可以是业务层方法

@TransActional
1.该注解用于事务管理
2.放在service层的方法/类/接口上
3.将当前的方法交给spring进行事务管理,方法执行前,开启事务;成功执行完毕,提交事务;出现异常回滚事务
4.默认情况下,只有RuntimeException异常才会回滚
5.rollkackFor属性可控制任何类型的异常进行回滚,@TransActional(rollbackFor=Exeception.class)
需要在配置文件中设置事务的开关

logging:
	level:
		org.springframework.jdbc.support.JdbcTransactionManager:debug

事务的传播行为

  1. 概念:当事务A中调用了事务B的时候,事务方法应该如何控制
  2. 可以通过@Transactional(propagation=)进行控制
  3. 常见的事务属性值
    在这里插入图片描述

4.事务的传播
在这里插入图片描述
使用步骤
1.在业务层的接口上添加@Transactional
2.设置事务管理器
在这里插入图片描述
3.开启注解事务驱动
在这里插入图片描述

设置错误回滚

默认情况,仅*error,runtime运行时的错误会回滚
@Transactional(rollbackFor={ IOException.class(错误类型)})

事务的传播行为

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值