@Produces注解
来源:互联网 发布:广州白云行知职业技术学校 编辑:程序博客网 时间:2024/06/09 19:12
《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的方法会被优先选择。
阅读全文
0 0
- @Produces注解
- spring丶@produces注解-作用解答
- javaEE注解@Decorator/@Delegate/@Observes/@Produces/@Alternative
- javax.ws.rs注解:@Conumes 和 @Produces等
- CDI系列学习--produces动态注入注解的使用和讲解
- springMVC produces属性含义
- @RequestMapping的produces属性
- springMvc返回乱码的 设置produces解决方案
- SpringMVC 设置produces决定返回的数据格式
- @RequestMapping(value = "", produces = "application/json")
- Startup Database Produces ORA-00600 : [keltnfy-ldmInit] [46]
- springMVC中,出现中文乱码的解决办法produces
- springMVC produces和ajax accept参数的配合使用
- 写接口时关于@Produces,@XmlRootElement的使用
- produces在@requestMapping中的使用方式和作用
- Git produces “BUG: There are unmerged index entries”
- produces在@requestMapping中的使用方式和作用
- Java Spring MVC进阶(2)--@produces、@PathVariable、@RequestParam等
- 普通块级元素的垂直格式化
- 逻辑运算符
- LeetCode 721. Accounts Merge
- 约瑟夫环问题的简单解法(数学公式法)
- 阿里巴巴java开发手册插件全球首发
- @Produces注解
- 《架构漫谈》思维导图
- linux常用命令汇总
- Mock测试
- log4j2配置详解及自定义Appender
- 极简MatConvNet安装编译
- ADT 单链表
- 剑指offer—二维数组的查找
- 谈谈Java中的自动装箱和拆箱