美文网首页
spring事务学习笔记

spring事务学习笔记

作者: KlingelModerat | 来源:发表于2019-04-12 17:00 被阅读0次

事务的四个特性(ACID)

  ①、原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。

  ②、一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。

  ③、隔离性(Isolation):可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离开来,防止数据损坏。

  ④、持久性(Durability):一旦事务完成,无论发生什么系统错误,它的结果都不应该受到影响,这样就能从任何系统崩溃中恢复过来。通常情况下,事务的结果被写到持久化存储器中。


Spring 事务中的七种传播行为:

  ①、PROPAGATION_REQUIRED :required , 必须。默认值,A如果有事务,B将使用该事务;如果A没有事务,B将创建一个新的事务。

  ②、PROPAGATION_SUPPORTS:supports ,支持。A如果有事务,B将使用该事务;如果A没有事务,B将以非事务执行。

  ③、PROPAGATION_MANDATORY:mandatory ,强制。A如果有事务,B将使用该事务;如果A没有事务,B将抛异常。

  ④、PROPAGATION_REQUIRES_NEW :requires_new,必须新的。如果A有事务,将A的事务挂起,B创建一个新的事务;如果A没有事务,B创建一个新的事务。

  ⑤、PROPAGATION_NOT_SUPPORTED :not_supported ,不支持。如果A有事务,将A的事务挂起,B将以非事务执行;如果A没有事务,B将以非事务执行。

  ⑥、PROPAGATION_NEVER :never,从不。如果A有事务,B将抛异常;如果A没有事务,B将以非事务执行。

  ⑦、PROPAGATION_NESTED :nested ,嵌套。A和B底层采用保存点机制,形成嵌套事务。


当有这样的需求:A 方法事务传播行为为PROPAGATION_REQUIRED,B 方法事务传播行为为PROPAGATION_REQUIRED_NEW,A方法用this.B()调用B时,若要保证B的成功与否不能影响A的执行。

用try catch将this.B()包起来,但是这样会出现B异常,A其他部分正常时,AB的事务都是成功的

这是因为@Transactional是通过切面切注解实现事务的,所以可以通过获取代理对象调用B方法。这样当出现B异常,A其他部分正常时,A事务成功,而B事务回滚。

相关文章

  • 9. 事务

    spring源码学习笔记,要点归纳和代码理解 前言 spring的声明式事务让我们从复杂的事务处理中得到解脱,让我...

  • spring事务学习笔记

    事务的四个特性(ACID) ①、原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确...

  • spring04

    Spring JdbcTemplate学习 Spring 声明式事务 xml配置实现 Spring 声明式事务 注...

  • Spring-tx

    spring-tx,spring-jdbc模块笔记,只涉及事务部分 核心类 @EnableTransactionM...

  • Spring0001

    1.【Spring学习34】Spring事务(4):事务属性之7种传播行为 https://blog.csdn.n...

  • Redis学习笔记:事务

    Redis学习笔记:事务 原文链接:Redis学习笔记:事务 一、事务的描述 和MySQL一样,Redis中也有事...

  • Spring Boot 学习笔记

    Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spr...

  • spring事务学习

    PlatformTransactionManager,通过这个接口,Spring为各个平台如JDBC、Hibern...

  • Spring 事务 学习

    笔记简述本学习笔记主要是介绍了事务相关的基础知识,学习编程式事务和声明式事务等不同的事务使用方法。不过现在实际开发...

  • Spring事务学习

    最近要去面试,有几个事务知识点需要复习下: 1:在同一个Service中。A方法存在事务,创建异常,事务回滚 事务...

网友评论

      本文标题:spring事务学习笔记

      本文链接:https://www.haomeiwen.com/subject/kstpvqtx.html