Spring事务管理的常用API

本文记录Java学习过程中遇到的Spring事务管理的常用API

PlatformTransactionManager(平台事务管理器)

  • SpringJDBC或iBatis:org.springframework.jdbc.datasource.DataSourceTransactionManager;
  • Hibernate:org.springframework.orm.hibernate3.HibernateTransactionManager。

TransactionDefinition(事务定义信息)

事务定义信息包括:

  • 隔离级别;
  • 传播行为;
  • 超时信息;
  • 是否只读。

TransactionStatus(事务状态)

用于记录事务的状态。

平台事务管理根据事务定义的信息就行事务的管理,事务管理的过程中产生一些状态,将这些状态记录到TransactionStatus中。

事务的传播行为

保证同一个事务中:

  • PROPAGAATION_REQUIRED:支持当前事务,如果不存在,就新建一个;
  • PROPAGAATION_SUPPORTS:支持当前事务,如果不存在,就不使用事务;
  • PROPAGAATION_MANDATORY:支持当前事务,如果不存在,就抛出异常。

保证没有在同一个事务中:

  • PROPAGAATION_REQUIRES_NEW:如果有事务存在,挂起当前事务,创建一个新的事务;
  • PROPAGAATION_NOT_SUPPORTED:以非事务方式运行,如果有事务存储,挂起当前事务;
  • PROPAGAATION_NEVER:以非事务方式运行,如果有事务存在,抛出异常。

嵌套事务:

  • PROPAGAATION_NESTED:如果当前事务存在,则嵌套事务执行。

标签: none