美文网首页
Spring事务总结

Spring事务总结

作者: niaoge2016 | 来源:发表于2016-09-08 16:53 被阅读70次

定义

逻辑上的一组操作,要么全做,要么全不做。

四大特性(简称ACID):

  • 原子性(Atomicity)
    事务是不可分割工作单元
  • 一致性(Consistency)
    事务前后数据的完整性必须保持一致
  • 隔离性(Isolation)
    多个用户并发访问时,多个并发事务之间是数据相互隔离的
  • 持久性(Durability)
    一个事务一旦被提交,它对数据库中数据的改变就是永久性的

常用API

3个主要接口

  • PlatformTransactionManager
    事务管理器
  • TransactionDefinition
    事务定义信息
  • TransactionStatus
    事务具体运行状态

事务隔离级别
如果不考虑隔离性,会引发安全问题:
1.脏读:一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读到的数据是无效的。
2.不可重复读:在同一事务中,多次读取同一数据返回的结果有所不同。
3.幻读(虚读):一个事务读取几行记录后,另一个事务插入一些记录,幻读就发生了。在后来的查询中,第一个事务就会发现有些原来没有的记录。

事务隔离级别

补充:
(1)Mysql 默认采用的 REPEATABLE_READ隔离级别
(2)Oracle 默认采用的 READ_COMMITTED隔离级别

事务传播行为

事务传播行为

补充:
第一类共同点:如果 A 方法中有事务,则调用 B 方法时就用该事务,即:A和B方法在同一个事务中。PROPAGATION_REQUIRED:如果 A 方法中没有事务,则调用 B 方法时就创建一个新的事务,即:A和B方法在同一个事务中。PROPAGATION_SUPPORTS:如果 A 方法中没有事务,则调用 B 方法时就不使用该事务。PROPAGATION_MANDATORY:如果 A 方法中没有事务,则调用 B 方法时就抛出异常。
第二类共同点:A方法和B方法没有在同一个事务里面。PROPAGATION_REQUIRES_NEW:如果 A 方法中有事务,则挂起并新建一个事务给 B 方法。PROPAGATION_NOT_SUPPORTED:如果 A 方法中有事务,则挂起。PROPAGATION_NEVER:如果 A 方法中有事务,则报异常。
第三类:如果 A 方法有的事务执行完,设置一个保存点,如果 B 方法中事务执行失败,可以滚回保存点或初始状态。

重点的三种:PROPAGATION_REQUIRED, PROPAGATION_REQUIRES_NEW, PROPAGATION_NESTED。

编程式事务

实际中很少使用
通过TransactionTemplate手动管理事务

声明式事务

开发过程中推荐使用
通过使用AOP实现
在配置文件XML中
使用方式

  • 注解
  • AspectJ
  • 基于TransactionProxyFactoryBean方式

相关文章

  • Spring事务代理机制总结(含代码Demo)

    Spring事务代理机制总结: 1、Spring声明式事务的底层是怎么实现的? 通过Spring中的代理,那在Sp...

  • Spring系列目录

    1、 Spring循环依赖的三种方式2、Spring事务代理机制总结

  • Spring事务总结

    定义 逻辑上的一组操作,要么全做,要么全不做。 四大特性(简称ACID): 原子性(Atomicity)事务是不可...

  • Spring事务总结

    1. 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行。 我们系统的每个业务方法可能包括了多个原子性...

  • Spring事务总结

    1. 事务定义 2. 事务状态 3. 编程式事务

  • Spring事务总结

    1.事务:多个操作组成单元,要么全部执行成功,要么全部执行失败。2.事务特性 (1)事务有四个特性:ACID原子性...

  • Spring事务总结

    1. 编程式事务和声明式事务 spring支持编程式事务管理和声明式事务管理两种方式。 编程式事务Spring推荐...

  • Spring 事务分析总结

    基于 Spring事务分析总结 - JavaGuide[https://github.com/Snailclimb...

  • 关于事务的思考

    Spring对于事务的支持 Spring事务接口 Spring事务管理器 Spring并不直接管理事务,而是提供多...

  • Spring事务

    Spring 事务 分类 Spring可以支持编程式事务和声明式事务。 编程式事务 实现 Spring使用事务管理...

网友评论

      本文标题:Spring事务总结

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