JAX-RS是JAVA EE6 引入的一个新技术。 JAX-RS即Java API for RESTful Web Services,是一个Java 编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。JAX-RS使用了Java SE5引入的Java注解来简化Web服务的客户端和服务端的开发和部署。
JAX-RS 是一套用 java 实现 REST 服务的规范
,提供了一些标注将一个资源类,一个 POJOJava 类,封装为 Web 资源。标注包括:
@Path
,标注资源类或方法的相对路径
@GET ,@PUT,@POST ,@DELETE
,标注方法是用的 HTTP 请求的类型
@Produces
,标注返回的 MIME 媒体类型
@Consumes
,标注可接受请求的 MIME 媒体类型
@PathParam,@QueryParam,@HeaderParam,@CookieParam,@MatrixParam,@FormParam
,分别标注方法的参数来自于 HTTP 请求的不同位置,例如@PathParam 来自于 URL 的路径
,@QueryParam 来自于URL 的查询参数
,@HeaderParam 来自于 HTTP 请求的头信息,@CookieParam 来自于 HTTP 请求的Cookie
。
目前 JAX-RS 的实现包括:
- Apache CXF,开源的 Web 服务框架。
- Jersey, 由 Sun 提供的 JAX-RS 的参考实现。
- RESTEasy,JBoss 的实现。
- Restlet,由 Jerome Louvel 和 Dave Pawson 开发,是最早的 REST 框架,先于 JAX-RS 出现。
- Apache Wink,一个 Apache 软件基金会孵化器中的项目,其服务模块实现 JAX-RS 规范
(以上来自:http://zh.wikipedia.org/wiki/JAX-RS)
JAX-RS有哪些实现
在构建RESTful服务时,JAX-RS是Java EE中常用的API之一。它允许开发人员使用各种方式创建RESTful服务,包括XML、JSON等。如今,有许多JAX-RS实现可供选择。下面介绍一些常用的JAX-RS实现。
Jersey
Jersey是JAX-RS的参考实现之一。它是为了简化RESTful服务的开发而创建的。Jersey提供了标准的JAX-RS API,并具有许多额外的功能。此外,Jersey还提供了一套易于使用的客户端API,它允许开发人员编写RESTful客户端程序。
Jersey是一个成熟的框架,得到了广泛的应用。它是开发RESTful服务时的框架之一。
RestEasy(JBOSS)
RestEasy是Red Hat的JAX-RS实现。它提供了一套全面的RESTful服务框架,具有许多独特的功能。RestEasy的特点是它的插件模型。它允许开发人员创建各种插件以扩展其功能。
RestEasy的性能与Jersey非常接近。如果你正在寻找一种功能强大的JAX-RS实现,并且需要一些额外的扩展功能,那么RestEasy是一个不错的选择。
CXF
CXF是Apache的JAX-RS实现,它是一个基于WSDL的Web服务框架。CXF支持SOAP和RESTful服务,提供了直观的API和丰富的功能。它还支持JSON和JAXB,能够以很少的代码量开发RESTful服务。
CXF的性能非常,虽然它的代码量比Jersey和RestEasy大一些。如果你需要一个简单易用的RESTful服务框架,并且需要更多的支持,那么CXF是一个不错的选择。
其他JAX-RS实现
除了上述三个实现之外,还有许多其他的JAX-RS实现可供选择,如轻量级的Restlet框架、新兴的MicroProfile Rest Client等。每个实现都有其独特的特点和优势,开发人员可以根据项目的具体需求选择合适的JAX-RS实现。
JAX-RS是Java EE中重要的API之一,它为开发RESTful服务提供了标准化的API和易用的框架。开发人员可以根据项目的实际需求和技术偏好选择合适的JAX-RS实现。