Spring @transactional 事务应用

本文详细介绍了Spring中的事务管理,包括ACID特性、传播行为、隔离级别、回滚规则、超时设置和只读事务。重点讲解了@Transactional注解的使用,如如何设置传播行为、隔离级别、手动回滚事务等,并探讨了注解失效的原因。此外,还提到了Spring事务管理的实现原理及其在实际应用中的注意事项。
摘要由CSDN通过智能技术生成

spring 事务:
 一: 理论:
  事务(ACID): 
  A:原子性-都成功,都失败; 
  C:一致性(A转账给B,A扣了一百,B的钱一定增加); 
  I:隔离性(事务之间互不干扰); 
  D:持久性(修改是永久的)
  
  1. 传播行为: 一个事务掉另一个事务,多个事务操作时怎么处理
     1.1 PROPAGATION_REQUIRED(默认): 当前事务存在,使用当前事务;当前不存在, 新建一个事务
     1.2 PROPAGATION_SUPPORTS:  当前事务存在,使用当前事务;当前不存在, 则不建立事务, 用非事务方式执行
     1.3 PROPAGATION_MANDATORY: 当前事务存在,使用当前事务;当前不存在,抛异常
     1.4 PROPAGATION_REQUIRES_NEW: 当前事务存在则挂起, 新建一个事务, 两个事务独立运行,可通过捕获新建事务执行异常判断当前事务是否需要回滚操作
     1.5 PROPAGATION_NOT_SUPPORTED: 当前事务存在则挂起,用非事务方式执行
     1.6 PROPAGATION_NEVER: 当前事务存在则抛异常,用非事务方式执行
     1.7 PROPAGATION_NESTED: 当前事务存在则嵌套事务, 不存在则新建一个事务
     @Transactional(propagation=Propagation.PROPAGATION_REQUIRED)
     
  2. 隔离级别: 
     并发情况会出现:
     脏读: 读取未提交数据
     不可重复读: 读取过程中有数据更新
     幻读: 修改过程中, 有数据更新
     2.1 ISOLATION_DEFAULT 默认级别 
     2.2 ISOLATION_READ_UNCOMMITTED: 读未提交的数据
     2.3 IS

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值