当前位置: 首页 > 知识库问答 >
问题:

如何使多个方法调用充当一个事务性工作单元

龚威
2023-03-14

我使用java和Spring在一个应用服务器上工作,我想将许多方法调用分组到一个单元工作中。

一个特定的流程涉及创建一个新的业务相关实体,它涉及以下单独的操作/从我的应用服务器调用:

  • 调用数据库
  • 在内存缓存中调用
  • 调用另一个应用程序服务器

我有一个单独的服务用于上面的每个操作,其中每个服务抛出一个特定的检查异常。目前,我正在one try catch块中调用上面的操作,并对我尝试回滚的每个异常使用特定的catch。

由于回滚,代码并不是最干净的,我更希望有某种模式/更干净的方式将上面的内容分组到一个可以回滚的工作单元(事务)中。

共有1个答案

黄信厚
2023-03-14

Spring通过分界提供事务支持。这里有一篇文章详细介绍了如何将其用于类似的用例:

http://java.dzone.com/articles/xa-transactions-2-phase-commit

 类似资料:
  • 问题内容: 为了了解Spring事务的工作原理,我想知道在以下情况下发生的情况:如果一种方法标记为,而另一种方法标记为。 假设配置使用所有默认设置。 现在,如果我要输入,显然可以开始交易。然后,钻进去会发生什么?交易已经存在的事实会导致没有新的交易诞生,还是我在这里创建两个交易? 关于Propagation的文档(在下面引用)似乎涵盖了这一点,但是我想验证一下我的理解 Propagation:通常

  • 问题内容: 为了了解Spring事务的工作原理,我想知道在以下情况下会发生什么情况,其中一种方法标记为,而另一种方法标记为。 假设配置使用所有默认设置。 现在,如果我要输入,显然可以开始交易。然后,钻进去会发生什么?事务已经存在的事实会导致没有新的事务诞生,还是我在这里创建两个事务? 关于传播的文档(在下面引用)似乎涵盖了这一点,但是我想验证一下我的理解,这对于我的处女大脑来说可以一次理解所有知识

  • 方法和由于某种原因没有被计算。 如何返回结果, 谢谢你!

  • 我有以下情况 我有一个REST客户端,它充当其他3个REST客户端的门面。(我正在用Java编程,使用Spring Boot) 客户机的职责之一包括对用户执行CRUD操作 现在,所有其他3个公开自己REST API的系统都有某种用户管理功能。 例如,当我收到创建用户的请求时,我必须通过REST API在这3个系统上创建它们,并将它们保存在我的数据库中。 现在,在最好的情况下,我只是调用他们的API

  • 我有一个非事务性和异步方法,它调用同一服务的其他事务性方法。 如果发生了什么事情,我会捕获一个异常,如果发生了什么事情,我会保存错误,但回滚不起作用。

  • 主课 工具类 考试班 输出: 我试图嘲笑util无效的方法调用与do没什么,但不工作。有人能帮我解决吗?我在我们的应用程序中遇到了类似的功能。