《Java RESTful Web Service实战(第2版)》第2章REST API设计,本章是REST理论和Jersey实践的核心章节,详细讲述了HTTP方法与REST API的统一接口设计、URI的REST风格设计,并逐个讲述了JAX-RS2定义的注解如何支持资源定位,还对Jersey对各种表述类型的支持和实现、Jersey对REST连通性的两种实现、REST资源方法对响应的处理以及Jersey对内容协商的支持和实现进行了讲述。本节为大家介绍@Produces注解。


注解@Produces 用于定义方法的响应实体的数据类型,可以定义一个或多个,同时可以为每种类型定义质量因素(qualityfactor) 。质量因素是取值范围从0到1的小数值。如果不定义质量因素,那么该类型的质量因素默认为1。我们将结合示例深入了解@Produces注解对媒体类型的影响,示例代码如下。

@Path("conneg-resource")
public class ConnegResource {  @GET  @Path("{id}")  //关注点1:媒体类型为XML  @Produces(MediaType.APPLICATION_XML)  public Book getJaxbBook(@PathParam("id") final Long bookId) {  return new Book(bookId);  }  @GET  @Path("{id}")  //关注点2:媒体类型为JSON  @Produces(MediaType.APPLICATION_JSON)  public Book getJsonBook(@PathParam("id") final Long bookId) {  return new Book(bookId);  }
} 

在这段代码中,getJaxbBook()和getJsonBook()是同等质量因素、资源地址相同的两个GET方法,一个定义响应实体格式为XML,一个定义响应实体格式为JSON,见关注点1和2。那么对同一个资源的访问,JAX-RS2该如何选择处理方法呢?如果请求中明确定义可接受的数据类型为两者之一,处理方法应该是定义相应数据类型的方法。如果两者都定义了,处理方法应该是质量因素高的方法。如果两者都定义,而且数据类型的质量因素是相等的或者没有定义Accept,XML的方法会被优先选择。

@Produces注解相关推荐

  1. spring丶@produces注解-作用解答

    ----我理解的是转换返回数据的格式,也就是 返回的内容类型 ---- ----注:@consumes是指定处理请求的提交内容类型.两者刚好相反---- 注解@Produces用于定义方法的响应实体的 ...

  2. javaEE注解@Decorator/@Delegate/@Observes/@Produces/@Alternative

    java SE 下的应用(设计模式.多线程等)迁移到Java EE下,经过改.进封装.使用注解等: 在Java SE下通过new.构造器等方式创建的对象,并未在Java EE下的容器(eg:EJB容器 ...

  3. java jersey使用总结_jersey使用指南

    jersey 是基于Java的一个轻量级RESTful风格的Web Services框架. 引入 使用maven,在pom.xml中加入: org.glassfish.jersey.core jers ...

  4. 使用JAX-RS创建RESTful Web Service

    guice resteasy http://www.cnblogs.com/ydxblog/p/7891224.html http://blog.csdn.net/withiter/article/d ...

  5. JAX-RS 方式的 RESTful Web Service 开发

    2019独角兽企业重金招聘Python工程师标准>>> Web Service 目前在风格上有两大类,一个是基于 SOAP 协议,一个是完全遵循 HTTP 协议规范的RESTful  ...

  6. [Android]使用Dagger 2进行依赖注入 - Producers(翻译)

    使用Dagger 2进行依赖注入 - Producers 原文:http://frogermcs.github.io/dependency-injection-with-dagger-2-produc ...

  7. Java RESTful Web Service实战(第2版) 2.3 传输格式

    2.3 传输格式 本节要考虑的就是如何设计表述,即传输过程中数据采用什么样的数据格式.通常,REST接口会以XML和JSON作为主要的传输格式,这两种格式数据的处理是本节的重点.那么Jersey是否还 ...

  8. JAVA RESTful WebService实战笔记(二)

    资源定位之注解相关简介 @QueryParam注解 JAX-RS2定义了@QueryParam注解来定义查询参数,如下表所示 接口描述 资源地址 分页查询列表数据 /query-resource/te ...

  9. Java RESTful Web Service实战(第2版)

    Java核心技术系列 Java RESTful Web Service实战 (第2版) 韩陆 著 图书在版编目(CIP)数据 Java RESTful Web Service实战 / 韩陆著. -2版 ...

最新文章

  1. 全基因组关联分析中上位性检测算法的研究
  2. Python3快速入门(三)——Python3标准数据类型
  3. 蓝桥杯java第五届决赛第三题--格子放鸡蛋
  4. 学习视觉和语言的多粒度对齐?字节提出新多模态预训练方法 X-VLM:代码已开源!...
  5. 汉三水属国(北地属国、安定属国)
  6. 营销自动化权威指南_免费电子书:自动化根本原因分析的完整指南
  7. python公共变量_Python中的公共变量
  8. django报错:ImproperlyConfigured和AppRegistryNotReady
  9. 配色方案|平板羽毛集,为你的下个作品做安排
  10. 利用 OpenMP 实现埃拉托斯特尼(Eratosthenes)素数筛法并行化
  11. 使用 Zabbix 监控 Jenkins
  12. javascript 自动化单元测试
  13. ABP之Javascript生成
  14. K33 不是平面图_Edraw Max:一款简单好用的建筑平面图设计软件!
  15. BI与SaaS碰撞,让数据处理更加轻松(下)
  16. 罗格斯的计算机科学博士奖学金,罗格斯大学计算机工程博士专业排名全网最新深刻分析...
  17. 阅读的 10 大好处:为什么你应该每天阅读
  18. Note: LSR LER
  19. net-java-php-python-宠物销售系统计算机毕业设计程序
  20. 2020CSP-S T1 儒略历

热门文章

  1. 红黑树原理详解及golang实现
  2. Springboot集成oshi远程监控主机
  3. select2动态添加option
  4. 年休假扣减顺序存储过程
  5. 了解搜索引擎来进行SEO
  6. Serverless 年终技术盘点 :工业、学术、社区遍地开花,国内厂商迅速卡位
  7. 函数返回数组指针的几种方法
  8. jpcap(使用方法)
  9. Wireless M-Bus介绍-摘自OMS
  10. Mellanox网卡驱动升级固件管理工具使用介绍