spring的事务传播

在数据库中事务有四种隔离级别,spring为了解决事务的嵌套,提出了事务的传播机制,即在多个事务方法中,相调用的时候的解决方案,

spring对事务的支持统一定义在TransactionDefinition 类中,该类有几个重要的接口

  • int getPropagationBehavior():事务的传播行为
  • int getIsolationLevel():事务的隔离级别
  • int getTimeout():事务的过期时间

  •           boolean isReadOnly():事务的读写特性。

    所谓的事务的传播属性就是多个事务方法在相互调用的时候,事务如何在这些方法之间传递,spring支持7中事务的传播行为


    REQUIRED  : 如果当前没有事务,新建一个事务,如果当前有事务,就加入一个事务中,这个是最常用的,
      • Support : 支持当前事务,当前没有事务就以非事务运行
      • MANDATORY :使用当前事务,如果没有事务就抛出异常REQUIRES_NEW:新建事务,如果当前存在事务,也新建一个事务 NOT_SUPPORTED :非事务运行,当前存在事务把当前事务挂起 NEVER  : 非事务运行当前存在事务就抛出异常 NESTED : 如果存在事务,就使用自己的事务,如果没有则与REQUIRED  一样
      • spring的事务传播属性默认是REQUIRED  ,使用大多情况,假设 ServiveX#methodX() 都工作在事务环境下(即都被 Spring 事务增强了),假设程序中存在如下的调用链:Service1#method1()->Service2#method2()->Service3#method3(),么这 3 个服务类的 3 个方法通过 Spring 的事务传播机制都工作在同一个事务中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值