spring事务管理

基本概念和使用方法

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

事物的操作:

  • 开启事物(一组操作开始前,开启事物):start transaction /begin;

  • 提交事物(这组事物全部成功之后,提交事物):commit

  • 回滚事物(中间任何一个操作出现异常,回滚事物):rollback

spring中提供好了事物管理的逻辑,直接在方法上使用@Transaction注解,该注解可以作用于方法上,类上,接口上

  • 作用在业务层的方法上,表示在这个方法执行之前开启事物,执行结束没有异常后提交事物

  • 作用在业务层的类上,表示这个类上所有的方法都交由spring进行事物管理

  • 作用在业务层的接口上,表示实现这个接口的实现类中的所有方法都交由spring进行事物管理

注意:@Transaction注解默认情况下只有出现RuntimeException才会回滚事物,这时我们需要使用rollbackFor属性控制出现何种异常类型,进行事物的回滚

  • @Transaction(rollbackFor = Exception.class):表示出现所有异常都进行事物回滚

propagation属性(事物的传播行为):当一个事物方法被另一个事物方法调用时,这个事物方法应该如何进行事物控制

属性值含义
REQUIRED【默认值】需要事物,有则加入事物没有则创建新事物
REQUIRES_NEW需要新事物,无论有无都要创建新事物
SUPPORTS支持事物,有则加入,无则在无事物状态中运行
NOT_SUPPORTED不支持事物,在无事物状态下运行,如果当前以存在事物,则挂起当前事物
MANDATORY必须有事物,否则抛出异常
NEVER必须没事物,否则抛出异常

事物的传播行为使用场景:

  • 大部分情况下使用使用默认值REQUIRED

  • 当我们不希望事物之间相互影响时,既可以使用REQUIRES_NEW该传播行为,比如:下订单的事物中,有记录日志的事物,并且无论下单是否成功,记录日志的事物都需要记录,这时就需要在记录日志的事物上添加该属性,不会相互应该

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值