Spring声明式事务管理简介

Spring声明式事务管理 (一)介绍

事务概念:

事务是一组最小逻辑执行单元,组成这个单元的每一个操作,要么同时执行成功,有一个执行失败就全部失败。
有四大特性:原子性,一致性,隔离性,持久性
Spring声明式事务控制

  1. Spring已经提供了事务管理、事务控制的具体实现,我们只需要按照规则使用即可。

  2. 如果要用Spring声明式事务,需要引入spring-tx包, spring-jdbc包。

  3. Spring声明式事务, 原理: Aop

    对符合切入点表达式的类,执行方法时候,可以动态织入切面类的事务控制代码。

Spring声明式事务管理 (二)Api

|-- PlatformTransactionManager Spring事务控制的顶层接口

​ 定义了提交事务、回滚事务的方法。

|-- TransactionStatus 事务的状态

|-- TransactionDefinition 事务定义(可以指定事务只读状态、传播行为、隔离级别等。)

传播行为作用: 控制事务的边界。简单来说,就是如何控制事务。

  1. 默认值。
  2. 如果一个方法指定事务的传播行为为REQUIRED, 表示当前运行方法必须有事务环境。
  3. 如果当前执行方法没有事务,则新建一个事务,把当前方法加入事务中。
  4. 如果当前执行的方法有事务,则直接加入当前事务,就不新建新的事务。
  5. 应用: 增删改

SUPPORTS

  1. 当前执行方法对事务的要求是: 可有可无。
  2. 有事务环境可以运行,没有事务环境也可以。
  3. 应用: 查询

REQUIRES_NEW

  1. 如果一个方法指定事务的传播行为为REQUIRES_NEW, 表示当前运行方法必须有事务环境。

  2. 不管当前方法是否有事务环境,都会新建一个新的事务。

|-- DataSourceTransactionManager 实现类,基于连接池的事务控制

spring对不同的技术提供了不同的事务控制实现:

​ HibernateTransactionManager、

​ JpaTransactionManager

你可能感兴趣的:(学习之路,学习之路)