JAX-RS介绍——Java API forRESTful WebServices,JAX-RS的目标是Web Services开发(这与HTML Web应用不同)而Spring MVC的目标则是Web应用开发

简介:
+关注继续查看

JAX-RS

Java API forRESTful WebServices旨在定义一个统一的规范,使得 Java 程序员可以使用一套固定的接口来开发 REST 应用,避免了依赖于第三方框架。是一个Java编程语言的应用程序接口,支持按照表象化状态转变 (REST)架构风格创建Web服务Web服务。

与传统的 servlet 模型相比,JAX-RS 提供了一种可行的、更为简便、移植性更好的方式来在 Java 内实现 RESTful 服务。使用注释让您能够轻松提供 Java 资源的路径位置并将 Java 方法绑定到 HTTP 请求方法。一种可移植的数据绑定架构提供了一些本机的 Java 类型支持并允许进行序列化/反序列化处理的完全定制。javax.ws.rs.core.Application 子类的扩展以及 web.xml 内的相应清单表明了用最少的部署描述符配置就能进行轻松部署。

JAX-RS 的具体实现由第三方提供,例如 Sun 的参考实现 Jersey、Apache 的 CXF 以及 JBoss 的 RESTEasy

JAX-RS标注

JAX-RS提供了一些标注将一个资源类,一个POJO类,封装为Web资源。标注包括:

@Path,标注资源类或方法的相对路径

@GET,@PUT,@POST,@DELETE,标注方法是用的HTTP请求的类型,分别对应 4 种 HTTP 方法,用于对资源进行创建、检索、更新和删除的操作。

  • 若要创建资源,应该使用 POST 方法;
  • 若要检索某个资源,应该使用 GET 方法;
  • 若要更改资源状态或对其进行更新,应该使用 PUT 方法;
  • 若要删除某个资源,应该使用 DELETE 方法。

@Produces,标注返回的MIME媒体类型

@Consumes,标注可接受请求的MIME媒体类型

@PathParam,@QueryParam,@HeaderParam,@CookieParam,@MatrixParam,@FormParam,分别标注方法的参数来自于HTTP请求的不同位置,

    • @PathParam来自于URL的路径,
    • @QueryParam来自于URL的查询参数,
    • @HeaderParam来自于HTTP请求的头信息,
    • @CookieParam来自于HTTP请求的Cookie。
    • 复制代码
      @Path("/")   
      public class BookkeepingService {   
          ......   
          @Path("/person/") //资源方法;若无@POST,则为子资源定位器  
          @POST   
          @Consumes("application/json")   
          public Response createPerson(Person person) { //JSON 格式的请求体被自动映射为实体参数person  
              ......   
          }   
        
          @Path("/person/")   
          @PUT   
          @Consumes("application/json")   
          public Response updatePerson(Person person) {   
              ......   
          }   
        
          @Path("/person/{id:\\d+}/") //正则表达式  
          @DELETE   
          public Response deletePerson(@PathParam("id")   
          int id) {   
              ......   
          }   
        
          @Path("/person/{id:\\d+}/")   
          @GET   
          @Produces("application/json")   
          public Person readPerson(@PathParam("id")   
          int id) {   
              ......   
          }   
        
          @Path("/persons/")   
          @GET   
          @Produces("application/json")   
          public Person[] readAllPersons() { //数组类型的返回值被自动映射为 JSON 格式的响应体——?  
              ......   
          }   
        
          @Path("/person/{name}/")   
          @GET   
          @Produces("application/json")   
          public Person readPersonByName(@PathParam("name")   
          String name) {   
              ......   
      }  
      复制代码

      这是一个示意的例子!




















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/6297198.html,如需转载请自行联系原作者
相关文章
|
17小时前
|
缓存 NoSQL Java
SSM之spring注解式缓存redis->redis整合,redis的注解式开发及应用场景,redis的击穿穿透雪崩
SSM之spring注解式缓存redis->redis整合,redis的注解式开发及应用场景,redis的击穿穿透雪崩
25 0
|
16天前
|
网络协议 Java 网络安全
基于Spring Boot的LDAP开发全教程
基于Spring Boot的LDAP开发全教程
71 0
|
2月前
|
XML 前端开发 JavaScript
Spring MVC应用的开发步骤
Spring MVC应用的开发步骤
69 0
|
3月前
|
缓存 NoSQL Java
Spring Cache简化缓存开发
Spring Cache简化缓存开发
99 0
|
3月前
|
缓存 开发框架 Java
基于jdk11/jdk8 + Spring全家桶开发的微服务中后台快速开发平台
基于jdk11/jdk8 + SpringCloudAlibaba + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多组户(SaaS架构)解决方案,亦可作为普通项目(非SaaS架构)的基础开发框架使用,目前已实现插拔式 数据库隔离、SCHEMA隔离、字段隔离 等租户隔离方案。
|
3月前
|
前端开发 Java 测试技术
「Java面试」如果不使用Spring,我们将如何开发?
曾经有一道面试题掀起了劲爆的浪潮,说如果不使用Spring,我们将如何开发?好多家公司都模仿提问了这么一道面试题,而且好多人也都在各个社区给出了自己的答案。接下来看看网友们是怎么说的。
149 0
|
4月前
|
安全 Java 开发者
【Spring】Spring基础知识 Java开发必看
【Spring】Spring基础知识 Java开发必看
57 0
|
4月前
|
Java 数据库连接 数据库
Spring Boot之Mybatis Plus:简化持久层开发的利器
本篇详细介绍了如何在Spring Boot应用中使用MyBatis Plus,一个用于简化持久层开发的工具。读者可以轻松实现CRUD操作,从而提高开发效率。展示了使用MyBatis Plus进行数据库操作的具体步骤。
408 5
Spring Boot之Mybatis Plus:简化持久层开发的利器
|
4月前
|
监控 Java 测试技术
探索轻量级Java开发:Spring Boot 介绍与特性解析
在现代的软件开发领域,快速、高效地构建可靠的应用程序变得至关重要。Spring Boot,作为Spring Framework家族中的一员,正是为了满足这一需求而诞生的。本文将为您介绍 Spring Boot 的基本概念、特性以及为什么它在Java开发中如此受欢迎。
68 0
|
4月前
|
JSON JavaScript 前端开发
Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置(二)
Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置
相关产品
云迁移中心
推荐文章
更多