【项目实战】Spring事务传播行为

一、事务传播

事务传播是指事务与其他事务交互时的行为。

二、Spring中七种不同的传播行为

在Spring中,有七种不同的传播行为可用:

序号 传播行为 解释 1 REQUIRED 如果存在事务,则当前方法将在该事务内运行。如果不存在事务,则将创建一个新事务。 2 SUPPORTS 如果存在事务,则当前方法将在该事务内运行。如果不存在事务,则该方法将在没有事务的情况下运行。 3 MANDATORY 如果存在事务,则当前方法将在该事务内运行。如果不存在事务,则会抛出异常。 4 REQUIRESNEW 无论事务是否已存在,都将为当前方法创建一个新事务。 5 NOTSUPPORTED 当前方法将始终在没有事务的情况下运行,而不管事务是否已存在。 6 NEVER 当前方法将始终在没有事务的情况下运行。如果存在事务,则会抛出异常。 7 NESTED 如果存在事务,则当前方法将在该事务内运行。如果不存在事务,则将创建一个新事务。但是,新事务将嵌套在现有事务中。

三、如何使用@Transactional注释指定事务的传播行为

要在Spring中指定事务的传播行为,我们可以使用@Transactional注释。 例如,如果想使用REQUIRED传播行为,我们可以像这样注释我们的方法: 这将确保该方法在现有事务中运行,如果存在事务,则创建一个新事务。

@Transactional(propagation = Propagation.REQUIRED)
public void myMethod() {
          
   
    // method logic here
}
经验分享 程序员 微信小程序 职场和发展