gpt4 book ai didi

java - 何时使用 Spring @Transactional (propagation = Propagation.SUPPORTS)?

转载 作者:IT老高 更新时间:2023-10-28 13:51:38 27 4
gpt4 key购买 nike

根据Spring javadoc @Transactional(propagation = Propagation.SUPPORTS)

Support a current transaction, execute non-transactionally if none exists. Analogous to EJB transaction attribute of the same name.

看来我可以只声明非事务性方法并完成它,所以我的问题是。

  • 在哪些情况下需要 SUPPORTS 传播?
  • 支持传播的意义何在?

谁能给出一个支持实际有用的真实示例/场景?

最佳答案

我能想到的最简单的例子是将一些内容发送到 JMS 服务器的方法。如果您在事务的上下文中,您希望消息与事务范围耦合。但是,如果还没有一个事务正在运行,为什么还要调用事务服务器并启动一个只是为了做一次性消息呢?

请记住,这些可以在 API 和实现上声明。因此,即使您的用例在将其放在那里和什么都不放在那里之间没有太大区别,它仍然为 API 作者增加了值(value),以指定哪些操作可以包含在事务中,而不是可能调用的操作不参与交易的外部系统。

这当然是在 JTA 上下文中。在事务仅限于资源本地物理数据库事务的系统中,该功能实际上并没有太多实际用途。

关于java - 何时使用 Spring @Transactional (propagation = Propagation.SUPPORTS)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15120141/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com