json - Spring REST 服务、Jersey REST 服务和 Spring+Jersey 解决方案有什么区别?

标签 json spring jersey rest

我想构建一个 RESTful 服务/API。我使用了一些像 play 这样的框架来构建它,但我想尝试其他更有效的方法。听说 Jersey 是构建 REST API 的常用库,Spring 也是一个不错的框架。但我也看到了一些解决方案,比如 Spring+Jersey。因此,我对那些 REST API 解决方案有点困惑。

谁能告诉我它们之间有什么区别? Jersey REST、Spring REST 和 Spring+Jersey REST?

我的目标是构建几个将 JSON 作为输入/输出的 REST API。我有 jar 文件作为后端处理逻辑来处理输入一个 JSON/对象并返回一个 JSON/对象。

最佳答案

Jersey 是 Sun 提供的 JAX-RS API 示例实现,而 Spring REST 当然是 Spring 对相同 API/JSR 的实现。主要区别在于 Spring REST 可以轻松集成到其他 Spring API(如果您愿意),例如 Spring Data Rest .

它们之间有一些值得注意的区别 - 您可以在彼此之间“嵌入”Jersey Resources(在 Spring 中称为 Controllers),以启用一个单独的类负责某个路径的子路径,而目前在 Spring 中似乎不可用(您必须定义完整路径)。此外,在我看来,Jersey 提供了更好的“开箱即用”错误响应(例如为什么它不能使用 Jackson 将 JSON 有效负载映射到 Java bean),而 Spring 的可配置性更高,但更简单,无需额外的工作。

最终,它们之间的选择差异通常归结为 - 您是否已经或计划将任何其他 Spring 库集成到您的应用程序中?如果是这样的话,Spring REST 是您可以更轻松地集成它的方式,否则它实际上只是您更喜欢使用的个人偏好。我个人喜欢 Jersey,但其他相关 Spring 项目的强大功能(例如我强烈推荐的 Spring HATEOAS)使 Spring 成为更好的选择。我认为您的情况不会有真正的决定性因素。

由于您的“黄金”目标是带有 JSON 输入/输出的简单 API,我建议您遵循 Spring REST guide .

关于json - Spring REST 服务、Jersey REST 服务和 Spring+Jersey 解决方案有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26824423/

相关文章:

java - neo4j 服务器扩展示例 -- java.net.BindException : Address already in use

javax servlet 过滤器与 Jersey 过滤器

json - 使用 Scala 简单将 JSON 转换为 XML,然后将 XML 转换为 JSON

c# - 我如何解析json?

java - Spring STS 挂起的原因可能是什么?

java - Spring quartz 间隔: what happen if method takes longer then repeat interval?

java - 使用 Spring 3 生成在 Postgres 中使用游标的 sql

java - Servicestack 或 SignalR 的 SSE Java 客户端

Python CGI 脚本在 uWSGI 试图读取 sys.stdin 时挂起

php - 新的 MYSQL 服务器不知道 JSON 数据类型