Java注解中produces啥意思_springmvc 没有produces注释,@produces在spring mvc中是什么意思...
@RequestMapping(value = "/produces", produces = "application/json"):表示将功能处理方法将生产json格式的数据,此时根据请求头中的Accept进行匹配,如请求头“Accept:application/json”时即可匹配;
@RequestMapping(value = "/produces", produces = "application/xml"):表示将功能处理方法将生产xml格式的数据,此时根据请求头中的Accept进行匹配,如请求头“Accept:application/xml”时即可匹配。
此种方式相对使用@RequestMapping的“headers = "Accept=application/json"”更能表明你的目的。
服务器控制器代码详解cn.javass.chapter6.web.controller.consumesproduces.ProducesController;
客户端代码类似于之前的Content-Type中的客户端,详见ProducesController.java代码。
当你有如下Accept头:
①Accept:text/html,application/xml,application/json
将按照如下顺序进行produces的匹配 ①text/html ②application/xml ③application/json
②Accept:application/xml;q=0.5,application/json;q=0.9,text/html
将按照如下顺序进行produces的匹配 ①text/html ②application/json ③application/xml
q参数为媒体类型的质量因子,越大则优先权越高(从0到1)
③Accept:*/*,text/*,text/html
将按照如下顺序进行produces的匹配 ①text/html ②text/* ③*/*
即匹配规则为:最明确的优先匹配。
代码详见ProducesPrecedenceController1、ProducesPrecedenceController2、ProducesPrecedenceController3。
三、窄化时是覆盖 而 非继承
如类级别的映射为 @RequestMapping(value="/narrow", produces="text/html"),方法级别的[email protected](produces="application/xml"),此时方法级别的映射将覆盖类级别的,因此请求头“Accept:application/xml”是成功的,而“text/html”将报406错误码,表示不支持的请求媒体类型。
详见cn.javass.chapter6.web.controller.consumesproduces.NarrowController。
只有生产者/消费者 模式 是 覆盖,其他的使用方法是继承,如headers、params等都是继承。
四、组合使用是“或”的关系
@RequestMapping(produces={"text/html", "application/json"}) :将匹配“Accept:text/html”或“Accept:application/json”。
五、问题
消费的数据,如JSON数据、XML数据都是由我们读取请求的InputStream并根据需要自己转换为相应的模型数据,比较麻烦;
生产的数据,如JSON数据、XML数据都是由我们自己先把模型数据转换为json/xml等数据,然后输出响应流,也是比较麻烦的。
Java注解中produces啥意思_springmvc 没有produces注释,@produces在spring mvc中是什么意思...相关推荐
- Spring MVC中@ControllerAdvice注解实现全局异常拦截
Spring MVC中@ControllerAdvice注解实现全局异常拦截 参考文章: (1)Spring MVC中@ControllerAdvice注解实现全局异常拦截 (2)https://ww ...
- Spring MVC 中的基于注解的 Controller
为什么80%的码农都做不了架构师?>>> Spring MVC 中的基于注解的 Controller @Controller 基于注解的 Controller 终于来到了基 ...
- Spring MVC中@Controller和@RequestMapping注解详解
在<第一个Spring MVC应用>教程中创建了两个传统风格的控制器,它们是实现 Controller 接口的类.传统风格的控制器不仅需要在配置文件中部署映映射,而且只能编写一个处理方法, ...
- java在spring mvc中的图片接收与发送处理
1.作为client发送和获取图片 1.1.发送图片 作为client时发送图片通常是通过from-data的multipart形式来发送的,这时我们就在模拟浏览器的form文件表单来提交请求,mul ...
- spring mvc中的@propertysource
在spring mvc中,在配置文件中的东西,可以在java代码中通过注解进行读取了: @PropertySource 在spring 3.1中开始引入 比如有配置文件 config.propert ...
- Spring 2.5:Spring MVC中的新特性
转载说明:infoQ就是牛人多,看人家去年就把Spring2.5注视驱动的MVC写出来了,还是这么详细,我真是自叹不如,今天偶尔看到这篇文章非常认真的拜读了2遍,简直是茅厕顿开啊....\(^o^)/ ...
- Spring MVC中的视图解析ViewResolver
http://blog.csdn.net/prince2270/article/details/5891085 在Spring MVC中,当Controller将请求处理结果放入到ModelAndVi ...
- 在Spring MVC中使用Velocity
在Spring MVC中使用Velocity – Part 1工程中配置velocity 目的 Spring MVC中结合velocity的配置和操作. 简介 我们要显示一个课程列表,需要如下的 Ja ...
- Spring MVC中获取Request的方法及分析
一.概述 在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端IP地址.请求的URL.header中的属性(如cookie.授权信息).body中的数 ...
- spring_在Spring MVC中使用多个属性文件
spring 每个人都听说过将单个Web应用程序组合成一个大型Web应用程序的门户. 门户软件的工作原理类似于mashup -来自多个来源的内容是在单个服务中获取的,大部分都显示在单个网页中. 门户软 ...
最新文章
- 2021全球抗体亲和力预测大赛来了!
- 计算机视觉的优点和局限性
- #开发catia_CATIA工程制图二次开发之15:从平面创建剖面视图
- (视频) 《快速创建网站》 3.2 WordPress多站点及Azure在线代码编辑器 - 扔掉你的ftp工具吧,修改代码全部云端搞定...
- 【蓝桥杯官网试题 - 历届试题】格子刷油漆(dp)
- Struts2知识点总结
- linux下iscsi
- 关于性能优化的一些实践
- C# - 接口,继承
- 扎心实战案例:麻(shi)雀(zhan)虽小,五脏俱全
- [Struts]使用tiles管理界面遇到困难
- 2020-08-17每日一句
- linux定时器无法重启pm2,在linux下开机启动pm2 不成功
- 分兵策略应对高速发展
- Spring Cloud Eureka 全解 (5) - 自我保护机制
- 听听别人怎么说:VueJS 与 ReactJS
- 函数重载导致的二义性
- 5700: 还钱问题
- C语言细看从头|内存清空函数
- python爬取百度云网盘资源-源码
热门文章
- R语言使用rnorm函数生成正太分布数据、使用plot函数可视化折线图、使用points函数指定数据点的颜色、使用lines函数指定线条的颜色
- 寒训3H Drazil and Tiles
- request.getParameter()
- linux 关机 异响,经验分享:自己动手解决台式机电源异响噪音
- Jetpack Compose 深入探索系列二:Compose 编译器
- AppCode初用体验
- 【React】717- 从零实现 React-Redux
- 【赏金猎人】记一次SRC挖掘思路
- 北师19春计算机应用基础,北师19春《大学英语(三)》在线考核试卷【参考答案】...
- 程序员才能理解的20张动图,你懂几个?