整合JAX-RS之利用Jersey框架实现RESTful

一. JAX-RS与Jersey简介

1. JAX-RS简介

在Java EE 6 中引入了对 JSR-311 的支持。JSR-311(也就是JAX-RS:Java API for RESTful Web Services)旨在定义一个统一的规范,它的核心概念是resource,也就是面向资源。JAX-RS使得 Java 程序员可以使用一套固定的接口来开发 REST 应用,避免了依赖于第三方框架。同时,JAX-RS 使用 POJO 编程模型和基于注解的配置,并集成了 JAXB,从而可以有效缩短 REST 应用的开发周期。

JAX-RS 定义的 API 位于 javax.ws.rs 包中,其中一些主要的接口、注解和抽象类如下图所示。

javax.ws.rs 包概况:

可以把 JAX-RS 理解为是一套开发协议,该协议具体的实现由第三方来完成,例如 Sun 的实现 Jersey框架、Apache 的 CXF框架 以及 JBoss 的 RESTEasy框架。

其中Jersey,RESTEasy这两个框架创建的应用,可以很方便地部署到Servlet 容器中,比如Tomcat,JBoss等。

2. Jersey框架简介

Jersey是对JAX-RS(JSR311)协议的实现,用于构建RESTful Web Service,可以进一步地简化 RESTful service 和 client 的开发。

也就是说Jersey是一个RESTful框架,与SpringMVC框架类似,但是使用上面和SpringMVC又有不同。此外Jersey还提供一些额外的API和扩展机制,所以我们可以按照自己的需要对Jersey进行扩展。

Jersey的一大特点就是,基于Jersey的REST应用,可以运行在Servlet环境下面,也可以脱离该环境。

3. Jersey常用注解

@Path

@Path注解的值是一个相对的URI路径。@Path的有没有/开头是一样的,同理,结尾有没有包含/也是一样的。

请求类注解

@GET, @PUT, @POST, @DELETE, … (HTTP Methods)
@GET, @PUT, @POST, @DELETE, @HEAD这些注解称为resource method designator,与HTTP规范中定义的方法一致。这些方法决定资源的行为。

@Produce

@Produce注解指定返回给客户端的MIME媒体类型。可以用于注解类或者注解方法。如果类中的方法没有指定,则默认使用类级别的@Produce值。@Produce注解可以指定多个值,同时可以指定quality factor:

@Produces({"application/xml; qs=0.9", "application/json"})

@Consumes

该注解

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JAX-RS(Java API for RESTful Web Services)是Java语言的一个规范,用于开发和部署RESTful风格的Web服务。它提供了一组API和注解,使开发者能够以简单和灵活的方式构建RESTful Web服务。 JAX-RS在实际应用中可以通过编写一个简单的demo来演示其使用方式。下面是一个JAX-RS demo的简单示例: 首先,我们创建一个Java类作为RESTful服务的入口点,该类使用@Path注解指定URL路径: ```java @Path("/demo") public class DemoResource { @GET @Produces(MediaType.TEXT_PLAIN) public String getDemo() { return "Hello, JAX-RS!"; } } ``` 然后,我们需要将该类部署到一个Java Web应用程序中。可以使用Java EE容器(如Tomcat)或Spring框架实现。 接下来,我们将创建一个 web.xml 文件,指定 JAX-RS 实现(如Jersey)并配置 RESTful 服务: ```xml <web-app> <servlet> <servlet-name>Jersey REST Service</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>com.example.demo</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey REST Service</servlet-name> <url-pattern>/api/*</url-pattern> </servlet-mapping> </web-app> ``` 在上述配置文件中,我们将“/api/*”映射到我们的 RESTful 服务。 最后,我们可以通过访问定义的URL路径来测试这个demo。在浏览器中输入"http://localhost:8080/api/demo",将会返回字符串"Hello, JAX-RS!"。 总结来说,JAX-RS demo是一个用于展示使用JAX-RS构建RESTful Web服务的示例。通过创建一个简单的Java类,并使用@Path和其他JAX-RS注解来定义RESTful资源和操作,我们可以轻松地构建和部署一个符合RESTful原则的Web服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值