Spring事务详细解释
前言 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可以为我们的开发工作提供许多便利。但是人们对他的误解也颇多,你一定也听过“service方法事务最好不要嵌套”的传言。要想正确的使用工具首先需要了解工具。本文对七种事务传播行为做详细介绍,内容主要代码示例的方式呈现。 基础概念 1. 什么是事务传播行为? 事务传播行为用来描述由某一个事务传播行为修饰的方法被嵌套进另一个方法的时事务如何传播。 用伪代码说明: public void methodA(){ methodB(); //doSomething } @Transaction(Propagation=XXX) public void methodB(){ //doSomething } 代码中 methodA() 方法嵌套调用了 methodB() 方法, methodB() 的事务传播行为由 @Transaction(Propagation=XXX) 设置决定。这里需要注意的是 methodA() 并没有开启事务,某一个事务传播行为修饰的方法并不是必须要在开启事务的外围方法中调用。 2. Spring中七种事务传播行为 定义非常简单