spring事务管理API

使用平台事务管理器:PlatformTransactionManager 是个接口

其中两个实现类:

  1. DataSourceTransactionManager:底层使用JDBC管理事务
  2. HibernateTransactionManager:底层使用Hibernate管理事务

TransactionDefintion:事务定义信息

  • 事务定义:用于定义事务相关的信息,隔离级别,超时信息,传播行为,是否只读

transactionStatus:事务的状态

  • 事务状态:用于记录在事务管理过程中,事务的状态的对象

spring进行事务管理的时候,首先平台事务管理器根据事务定义信息进行事务的管理,在事务管理过程中,产生了各种状态,将这些状态保存到事务状态的对象中;三个对象的协作

spring事务的传播行为:提供七种传播行为,解决业务层方法的相互调用的问题!

  • 保证多个操作在同一个事务
  1.   propagation——require:默认值,代表如果A方法中有事务,使用A中的事务,没有,就创建一个新的事务,保证同一个事务中;
  2.   propagation——support:支持事务,如果A中有事务,使用A中的事务,如果没有事务,不使用事务。
  3.   propagation——Mandatory:不支持事务,如果A中有事务,使用A中的事务,没有就抛出异常;
  • 保证多个操作不在同一个事务中

 创建事务,包含自身操作

  1. propagation——requires_new:如果A中有事务,将A的事务挂起(暂停),创建新事物,只包含自身操作,如果没有,
  2. propagation——not_support:如果A中有事务,将A的事务挂起,不使用事务管理。
  3. propagation——never:如果A中有事务,抛出异常
  • 嵌套事务
  1. propagation——nested:如果A中有事务,按照A的事务执行,执行完成后,设置保存点,执行B中的操作,如果没有异常,执行通过,如果有异常,可以选择到回滚最初位置,也可以回滚到保存点!

猜你喜欢

转载自blog.csdn.net/qq_41679695/article/details/84136170
今日推荐