本文是一个三部分文章系列的第 3 部分,将比较 Apache Wink 和其他各种免费的开源 JAX-RS 实现,比如 Project Jersey、JBoss RESTEasy 和 Restlet Framework。本文将简要描述每个实现框架,同时基于一组公共属性强调它们之间的区别。最后,本文通过分析和审查这些不同的 JAX-RS 实现来帮助您选择适合自己需求的适当框架。
常用缩略词- API:应用程序编程接口
- CSV:逗号分隔值
- HTML:超文本标记语言
- HTTP:超文本传输协议
- JSON:JavaScript 对象符号
- MIME:多用途互联网邮件扩展
- REST:具象状态传输
- RSS:真正简单聚合
- UI:用户界面
- URI:统一资源标识符
- WebDAV:基于 Web 的分布式创作和版本控制
- XML:可扩展标记语言
功能比较那么,应该使用那些主要领域来比较这些不同的 JAX-RS 实现呢?针对本文的目的,我主要关注 5 个重要领域。显然,可以通过更多的特性来比较这些 JAX-RS 实现,但下面 5 个特性是进行快速、简便、高效的、基于 REST 的生产质量服务开发和测试的关键特性:
- 嵌入式容器。多数 JAX-RS 实现都可以部署在一个 servlet 容器中,但有时需要在一个不基于 servlet 的简单 Java 应用程序中以一种嵌入式方式运行基于 REST 的服务。确保知道哪些实现支持使用嵌入式容器。
- 客户端 API。JAX-RS 定义了复杂的服务器绑定规范,但规定由实现框架来负责定义客户端绑定和 APIs。因此,客户端架构和框架是选择 JAX-RS 实现的一个关键属性。
- 侦听器框架。基于 REST 的 Web 服务开发人员经常需要以一种非侵入方式对 HTTP 调用进行预先处理和事后处理。这些调用对日志记录、缓存设置和安全验证等操作很有用。确定您的框架提供的、用于处理 HTTP 侦听的机制。
- 数据格式支持。通过使用 MessageBodyReader 和 MessageBodyWriter 提供程序,JAX-RS 允许轻松添加对任意数据类型的支持。确定常用格式(包括 Atom、JSON 和 MIME 多部分数据)的开箱即用支持。
- 组件集成。与其他框架的集成在基于 REST 的服务开发中很重要。通常,您使用 Spring 等其他框架进行依赖项注入,使用其他 Model-View-Controller (MVC) 框架来处理 UI。确定您选择的 JAX-RS 框架与第三方组件的原生集成支持。
|