一:什么是事务的传播行为

        事务的传播行为是指:当一个事务方法被另一个事务方法调用的时候,该如何运行,是自己创建一个新的事务还是说跟随别人的事务方法还是抛出异常。Spring框架为此提供了7种方式。也叫做事务的7种传播行为。

二:事务的7种传播行为都有哪些

        {required(要求)、supports(支持)、mandatory(强制)、required_new(新要求)、not supported(不支持)、never(从不)、nested(嵌套)}

                  这几个翻译很重要!!!                do you 知道吗???

PROPAGATION_REQUIRED:如果当前有事务,那就加入到事务中去,如果当前没有事务,那就创建一个新的事务。同时这也是spring的默认事务传播行为。(有就加入,没有就自己新建)

PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务那就加入,如果当前不存在事务,那就以非事务的方式运行。(有就加入,没有就不管)

PROPAGATION_MANDATORY:强制添加事务,如果当前有事务那就添加到事务中去,如果当前没有事务那就抛出异常。(有就加入,没有就抛出异常,必须要有事务)

PROPAGATION_REQUIRES_NEW:创建新的事务,无论当前有没有事务,都创建一个新的事务。(不管有没有,都新建一个事务)

PROPAGATION_NOT_SUPPORTED:不支持事务,以非事务的方式执行,如果当前存在事务那就将事务挂起。(不支持事务,如果有事务,那就给你挂起。自己就以非事务的方式执行)

PROPAGATION_NEVER:坚决没有事务,以非事务的方式执行,如果当前存在事务那就抛出异常。(坚决不要事务,有就抛出异常)

PROPAGATION_NESTED:如果当前存在事务,那就嵌套到在当前事务内执行,如果当前没有事务那就按照PROPAGATION_REQUIRED执行。(当前有事务,就嵌套着执行,没有就看外层有没有事务,如果有就加入,外层也没有就新建)

下课!!!!!!!