java - 如何在不使用 spring 的 @Transactional beans 的情况下管理 jax-rs 中的事务

标签 java rest transactions jersey jax-rs

我正在使用 Jersey(JAX-RS) 开发 RESTful Web 服务。我的应用程序需要事务支持。我在网上搜索了这个,在大多数地方,我得到了使用Spring事务支持的答案(建议),但我根本没有使用Spring,也不想使用Spring的事务支持(应用@Transactional注释)。有没有其他方法可以在不使用 Spring 的事务支持的情况下在 Jersey 中获得事务支持。如果 Jersey 没有任何交易支持,那么我如何自己实现这一点。 提前致谢。

下面是具体的场景: 在我的架构中,我有 3 层,1.应用程序层(API 层),2.服务层和 3.数据库服务层。现在,如果一个服务消耗 2 个或更多数据库服务,那么只有当所有数据库服务都成功执行时它才必须提交,否则它必须回滚。所以,基本上我想要服务层的事务支持。

最佳答案

您需要事务管理来实现这一点。 JEE 容器和 Spring 提供了这一点。您还可以使用独立框架,例如 Atomikos。最后,如果所有事务工作都由单个 JDBC 连接处理,则可以使用提交/回滚。首先是查看您用来支持服务和数据库访问的环境,然后决定如何处理事务。

关于java - 如何在不使用 spring 的 @Transactional beans 的情况下管理 jax-rs 中的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49631657/

相关文章:

Java do-while 在其自己的类的方法内循环

node.js - d3.js、queue.js 和 node.js

postgresql - 从 SQL 获取 transactionid(xid)

database - Cloud Firestore 文档锁定

java - Java中的变量默认值

java - 使用最多五位数字来格式化 double 值,必要时四舍五入小数位

从方法返回类型派生的 Java 泛型类型推断

javax.mail.NoSuchProviderException : No provider for SMTP error while running spring application using Intellij

rest - 从 Swagger 响应中排除模型或属性

c# - 使用 subsonic 事务