Closed mysterin closed 5 years ago
假设: serviceA 调用 serviceB, 然后 serviceB 使用下面传播行为:
表示 serviceB 必须要在事务运行, 如果 serviceA 有事务, 就有 serviceA 的事务; 如果没有, 就新建一个事务执行.
表示 serviceB 不一定在事务运行, 当然如果 serviceA 有事务, 那就在这个事务运行吧.
表示 serviceB 必须要在事务运行, 如果 serviceA 没有设置事务运行, 那么 serviceB 会抛出异常.
表示 serviceB 会新建一个事务运行, 如果 serviceA 有事务, 那么这个事务会被挂起. serviceA 回滚不会导致 serviceB 回滚.
表示 serviceB 以非事务状态运行, 如果 serviceA 有事务, 那么这个事务会先被挂起.
表示 serviceB 不能在事务运行, 如果 serviceA 有事务, 那么serviceB 会抛出异常.
表示 serviceB 的事务嵌套在 serviceA 的事务, serviceA 的回滚会导致 serviceB 的回滚.
假设: serviceA 调用 serviceB, 然后 serviceB 使用下面传播行为:
PROPAGATION_REQUIRED
表示 serviceB 必须要在事务运行, 如果 serviceA 有事务, 就有 serviceA 的事务; 如果没有, 就新建一个事务执行.
PROPAGATION_SUPPORTS
表示 serviceB 不一定在事务运行, 当然如果 serviceA 有事务, 那就在这个事务运行吧.
PROPAGATION_MANDATORY
表示 serviceB 必须要在事务运行, 如果 serviceA 没有设置事务运行, 那么 serviceB 会抛出异常.
PROPAGATION_REQUIRES_NEW
表示 serviceB 会新建一个事务运行, 如果 serviceA 有事务, 那么这个事务会被挂起. serviceA 回滚不会导致 serviceB 回滚.
PROPAGATION_NOT_SUPPORTED
表示 serviceB 以非事务状态运行, 如果 serviceA 有事务, 那么这个事务会先被挂起.
PROPAGATION_NEVER
表示 serviceB 不能在事务运行, 如果 serviceA 有事务, 那么serviceB 会抛出异常.
PROPAGATION_NESTED
表示 serviceB 的事务嵌套在 serviceA 的事务, serviceA 的回滚会导致 serviceB 的回滚.