Spring Boot事务传播机制 - DZone Java


任何应用程序都涉及许多服务或组件调用其他服务或组件。事务传播指示任何组件或服务是否将参与事务,以及如果调用组件/服务已经或者没有已创建事务,它将如何表现。有六种类型的事务传播:

  • REQUIRED默认
  • SUPPORTS
  • NOT_SUPPORTED
  • REQUIRES_NEW
  • NEVER
  • MANDATORY

REQUIRED默认
如果调用者的服务中有一个存在的事务,那么就使用这个存在的,如果调用者中没有事务上下文,则创建一个新的事务。

SUPPORTS
如果调用者的服务中有一个存在的事务,那么就使用这个存在的,如果调用者中没有事务上下文,则不会创建一个新的事务。

 NOT_SUPPORTED
无论调用者是否有事务,都不会创建或参与任何一个事务。

REQUIRES_NEW
无论调用者是否有事务,总是会创建自己的一个事务。

NEVER
如果调用者有事务,会抛出exception,如果调用者没有事务,也不会创建事务,在没有事务环境下运行。

MANDATORY
如果调用者的服务中有一个存在的事务,那么就使用这个存在的,如果调用者中没有事务上下文,会抛出exception。

点击标题见原文代码案例。