博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
@Produces注解
阅读量:4047 次
发布时间:2019-05-25

本文共 1155 字,大约阅读时间需要 3 分钟。

《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); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

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

转载地址:http://lofci.baihongyu.com/

你可能感兴趣的文章
我用一天时间做了一个MTK版本【转】
查看>>
把人生看透
查看>>
LED背光学习_可变模式分数电荷泵实现低功耗手机LCD背光驱动方案
查看>>
LED背光学习_标准和白光LED的基础知识与驱动
查看>>
秒 毫秒 微秒 纳秒 皮秒 飞秒
查看>>
认识A2DP
查看>>
寂寞是因为思念谁
查看>>
模拟屏学习资料_电视标准:PAL和NTSC
查看>>
模拟屏学习资料_电视标准:接收制式
查看>>
模拟屏学习资料_什么是PAL制式
查看>>
模拟屏学习资料_模拟视频 入门
查看>>
模拟屏学习资料_缩写补充(1)
查看>>
关于字符串逆序的问题
查看>>
嵌入式及手机开发[笔试题目]
查看>>
Sony Ericsson Z610i
查看>>
MTK的暗码
查看>>
LCD的接口分类
查看>>
LCD点屏心得
查看>>
可重入函数
查看>>
C语言嵌入式系统编程修炼之道
查看>>