Spring中事务的传播行为

事务的传播行为:很重要!!!

Spring提供7中事务的传播行为------>特别注意事务都是加到业务层

传播行为的用途:

应用场景:如果遇到特别复杂的业务逻辑,有可能会出现业务层之间的相互调用。而事务的传播行为主要用来解决业务层互相调用的问题。

传播行为主要分为三大类:

第一类:保证多个操作在同一个事务中。

 1、PROPAGATION_REQUIRED:如果A中有事务,使用A中的事务;如果A中没有事务,创建一个新的事务,将操作包含起来。一般默认使用。

 2、PROPAGATION_SUPPORTS:支持事务,如果A中有事务,使用A中的事务;如果A中没有事务,不使用事务。

 3、PROPAGATION_MANDATORY:如果A中有事务,使用A中的事务;如果A中没有事务,抛出异常。

第二类:保证多个操作不在同一个事务中。

 1、PROPAGATION_REQURIES_NEW:如果A中有事务,将A中的事务挂起(暂停),创建新事务,只包含自身的操作;如果A中没有事务,创建一个新事务,包含自身操作。一般默认使用。

 2、PROPAGATION_NOT_SUPPORTED:如果A中没有事务,将A的事务挂起,不使用事务。

 3、PROPAGATION_NEVER:如果A中有事务,抛出异常。

第三类:嵌套事务。

 1、PROPAGATION_NESTED:如果A中有事务,按照A的事务执行,执行完成后,设置一个保存点。执行B中的操作,如果没有异常,执行通过。如果有异常,可以选择回滚到最初始位置,也可以回滚到保存点。一般默认使用。

 

 

ps:能力不足,如有错误请多多指教,谢谢!!!!

posted on 2018-09-16 21:44  mylovezy  阅读(480)  评论(0)    收藏  举报