技术复习-Spring事务

spring事务

1.事务传播机制

在spring中事务存在嵌套的状况,在这种状况下事务如何协调,spring在TransactionDefinition中设了七个规则,被称做事务的传播机制spring

1.TransactionDefinition.PROPAGATION_REQUIRED
若是当前存在事务,则加入该事务中,当前不存在事务,新建事务

2.TransactionDefinition.PROPAGATION_REQUIRES_NEW
当前存在挂起当前事务,新建事务,当前不存在事务,新建事务。新建的事务不受外层事务无关。

3.TransactionDefinition.PROPAGATION_SUPPORTS
当前存在事务,则加入事务中,当前不存在事务,则非事务的方式运行。

4.TransactionDefinition.PROPAGATION_NOT_SUPPORTS
以非事务的方式运行。若是当前存在事务则将当前事务挂起。

5.TransactionDefinition.PROPERGATION_NEVER
以非事务的方式运行,若是存在事务则抛出异常。

6.TransactionDefinition.PROPERGATION_MANDATORY
当前存在事务则加入事务,当前不存在事务,抛出异常

7.TransactionDefinition.PROPAGATION_NESTED
存在事务,则做为嵌套事务,不存在事务,则新建事务。

2.Spring管理类

  • PlatformTransactionManager Spring事务管理接口 定义了三个接口:getconnection、commit、rollback数据库

  • DataSourceTransactionManager 具体的JDBC事务管理类 实现了PlatformTransactionManager的三个接口,具体关于数据库事务管理交给DataSource通常状况下咱们用ibatis用这个管理类便可。code

  • HibernateTransactionManager 具体的Hibernate事务管理类orm

  • TransactionDefinition 事务属性类 定义了事务的隔离级别和传播机制等常量接口

  • TransactionStatus 事务状态信息 保存了Transaction、TransactionDefinition等信息事务

比较好的总结文章:https://www.jianshu.com/p/3ee9dd1857afget

相关文章
相关标签/搜索