如何在spring事务中选择传播?

如何在spring事务中选择传播?,spring,transactions,mybatis,spring-mybatis,propagation,Spring,Transactions,Mybatis,Spring Mybatis,Propagation,我正在阅读spring mybatis.xml,下面是事务管理器的一些代码: 我想知道为什么有些方法定义为“必需”或“支持”?如何思考并决定选择哪个?你的问题是,我认为这是关于Spring事务的,这取决于你的业务逻辑和你如何控制Spring事务 要理解Spring事务“必需”或“支持”,您需要理解Spring事务定义。此事务定义类型来自org.springframework.transaction.TransactionDefinition类。但首先需要了解1)Spring事务类型,然后了解2

我正在阅读spring mybatis.xml,下面是事务管理器的一些代码:


我想知道为什么有些方法定义为“必需”或“支持”?如何思考并决定选择哪个?

你的问题是,我认为这是关于Spring事务的,这取决于你的业务逻辑和你如何控制Spring事务

要理解Spring事务“必需”或“支持”,您需要理解Spring事务定义。此事务定义类型来自
org.springframework.transaction.TransactionDefinition
类。但首先需要了解1)Spring事务类型,然后了解2)Spring事务定义

1)Spring支持两种类型的事务管理:
编程事务管理:这意味着您已经在编程的帮助下管理了事务。这给了你极大的灵活性,但很难保持

声明性事务管理:这意味着您将事务管理与业务代码分开。您只能使用注释或基于XML的配置来管理事务

2)Spring事务定义 需要传播: Spring REQUIRED行为意味着,如果当前bean方法执行上下文中存在已打开的事务,则将使用相同的事务。如果不存在,则创建一个新的。 简而言之,这意味着如果内部(第二个事务)方法导致事务回滚,外部(第一个事务)方法将无法提交,并且也将回滚事务
传播\u支持: 支持当前交易;如果不存在,则以非事务方式执行

理解这些“需要”“支持”是不够的,正如我向您提到的,您需要理解
org.springframework.transaction.TransactionDefinition
类下的所有Spring定义

不幸的是,我在2014年12月的slideshare网站上写下了关于这个Spring类型和交易的一个要点。

在这张幻灯片中,我在power point note会话中添加了关于Spring事务的非常重要的一点。因此,请不仅参考幻灯片内容,还参考幻灯片备注部分。希望能有所帮助

例如,请参阅power point notes会话,以进一步了解Spring事务定义。

编辑:

传播意味着:通常,在事务范围内执行的所有代码都将在该事务中运行。但是,您可以选择在事务上下文已经存在的情况下执行事务方法时指定行为。例如,代码可以在现有事务中继续运行(常见情况);或者,可以暂停现有事务并创建新事务。Spring提供了EJBCMT中熟悉的所有事务传播选项。要了解Spring中事务传播的语义,请参见

您的问题是,我认为这是关于Spring事务的,它取决于您的业务逻辑以及如何控制Spring事务

要理解Spring事务“必需”或“支持”,您需要理解Spring事务定义。此事务定义类型来自
org.springframework.transaction.TransactionDefinition
类。但首先需要了解1)Spring事务类型,然后了解2)Spring事务定义

1)Spring支持两种类型的事务管理:
编程事务管理:这意味着您已经在编程的帮助下管理了事务。这给了你极大的灵活性,但很难保持

声明性事务管理:这意味着您将事务管理与业务代码分开。您只能使用注释或基于XML的配置来管理事务

2)Spring事务定义 需要传播: Spring REQUIRED行为意味着,如果当前bean方法执行上下文中存在已打开的事务,则将使用相同的事务。如果不存在,则创建一个新的。 简而言之,这意味着如果内部(第二个事务)方法导致事务回滚,外部(第一个事务)方法将无法提交,并且也将回滚事务
传播\u支持: 支持当前交易;如果不存在,则以非事务方式执行

理解这些“需要”“支持”是不够的,正如我向您提到的,您需要理解
org.springframework.transaction.TransactionDefinition
类下的所有Spring定义

不幸的是,我在2014年12月的slideshare网站上写下了关于这个Spring类型和交易的一个要点。

在这张幻灯片中,我在power point note会话中添加了关于Spring事务的非常重要的一点。因此,请不仅参考幻灯片内容,还参考幻灯片备注部分。希望能有所帮助

例如,请参阅power point notes会话,以进一步了解Spring事务定义。

编辑:
传播意味着:通常,在事务范围内执行的所有代码都将在该事务中运行。但是,您可以选择在事务上下文已经存在的情况下执行事务方法时指定行为。例如,代码可以在现有事务中继续运行(常见情况);或者,可以暂停现有事务并创建新事务。Spring提供了所有事务传播选项famil