当前位置: 首页 > wzjs >正文

西安网络推广网站优化东莞做网站推广

西安网络推广网站优化,东莞做网站推广,武汉网站营销公司,图片编辑软件加文字这是我的专栏《学透Spring Boot》的第18篇文章,想要更系统的学习Spring Boot,请访问我的专栏:学透 Spring Boot_postnull咖啡的博客-CSDN博客。 目录 返回不同格式的响应 Spring Boot的内容协商 控制器不用任何修改 启动内容协商配置 访…

这是我的专栏《学透Spring Boot》的第18篇文章,想要更系统的学习Spring Boot,请访问我的专栏:学透 Spring Boot_postnull咖啡的博客-CSDN博客。

目录

返回不同格式的响应

Spring Boot的内容协商

控制器不用任何修改

启动内容协商配置

访问应用

获取XML格式的响应

添加XML的支持

设置变量名

配置其它的格式

总结


Spring MVC中会根据@GetMapping或者@RequestMapping中的路径,匹配对应的HTTP请求到指定的方法去,这个我们不再累述。

今天我们玩点更特别的。

返回不同格式的响应

有时候,我们希望我们的响应,既可以返回json格式,也可以返回xml格式。

返回什么格式,由我们的参数来决定。

最傻的办法,是在Controller中,解析format参数,然后用XML或者Json解析器把对象转换成json或者XML格式。

这样当然可以,但是有点不够优雅。

Spring Boot的内容协商

好在,Spring Boot已经帮我实现了这样的特性,支持不同格式的响应。

控制器不用任何修改

控制器不用做任何修改,甚至连format参数都不用加。

启动内容协商配置

application.properties

spring.mvc.contentnegotiation.favor-parameter=true

访问应用

然后我们可以带参数获取不同的响应。

http://localhost:8080/buyBike?format=json

返回了json响应

不带format参数,返回的也是json。这是默认格式。

获取XML格式的响应

然后我们再获取xml响应:http://localhost:8080/buyBike?format=xml

非常可惜,情况有点异常。报错了。

查看日志,发现支持的格式中居然没有application/xml.

这是怎么回事呢?

我们debug看看,启动时看看WebMvcConfigurer (Spring MVC配置器)加载了哪些http消息转换器。

要深入了解HTTP消息转换器,请看我上一篇的文章学透Spring Boot — 017. 魔术师—Http消息转换器-CSDN博客

可以看到,SpringBoot只配置了json的转换器。

我们再看看jackson的自动配置类

可以看到,要配置Jackson XML,就classpath下必须有XmlMapper类。

很可惜Spring Boot默认没有引入这个类。

添加XML的支持

为了支持XML的响应,我们需要引入XML相关的依赖。

这时候有了XmlMapper类,我们的Jackson也会去自动配置XML转换器了。

我们重启服务,debug,再看看加载的消息转换器列表。

下图可以看出,Jackson XML的消息转换器已经自动配置并加载了。

再次访问,成功返回xml的响应!!!

设置变量名

其实我们还可以做得在多一点。比如我不喜欢format这个变量,我想改成good

spring.mvc.contentnegotiation.parameter-name=good

完全OK

配置其它的格式

如果我还想配置其它的格式,也是可以的。比如我们前面文章自主研发的格式“hehe/nba”

spring.mvc.contentnegotiation.media-types.hehe-nbc=hehe/nba

访问有问题可能是因为你的格式不在支持的列表中

RequestResponseBodyMethodProcessor : Using 'hehe/nba;charset=UTF-8', given [hehe/nba] and supported [application/json, application/*+json, application/xml;charset=UTF-8, text/xml;charset=UTF-8, application/*+xml;charset=UTF-8, hehe/nba;charset=UTF-8, hehe/nba]

而且我们开发的hehe/nba格式,暂时只处理了Car类。

总结

本文,我们自己通过内容协商,实现了返回多种格式响应的需求,而且不用改动任何业务代码,只需做少量配置即可。另外,我们也通过引入XML的依赖,实现了Spring Boot对Jackson XML的自动配置。

http://www.dtcms.com/wzjs/223566.html

相关文章:

  • 杭州网站建设优化案例有没有专门做营销的公司
  • 美食介绍网站模板seo翻译
  • 其他公司盗用公司名做网站今日新闻热点大事件
  • 网站app免费制作网站自己推广
  • 网站新闻后台怎么做网站快速建站
  • 安阳那里可以制作网站宁波seo网络推广推荐
  • 计算机网站建设维护的目的怎么从网上找客户
  • 珠海政府网站建设公司推广引流工具
  • 河北seo网站优化报价seo薪资水平
  • 下班后做兼职任务网站seo现在还有前景吗
  • 鹤山市城乡住房建设部网站网络seo排名
  • 阿里云虚拟主机与网站吗百度极速版下载
  • 网站导航栏制作教程淘宝客推广一天80单
  • 如何做网站弹窗广告360投放广告怎么收费
  • 制作外贸网站的公司中国搜索引擎排行榜
  • 网站建设优化服务价格天津网站建设
  • 汕头h5建站模板软文例文 经典软文范例
  • 打开澳门网址资料网站sem运营有出路吗
  • 做网站推广的销售电话开场白电商网站搭建
  • 关于做好网站建设的通知线上推广平台有哪些
  • 图片网站模板下载看今天的新闻
  • 公安免费网站模板google收录查询
  • 建网站引流做淘宝人工智能培训班收费标准
  • 建设通网站怎么样seo是什么姓
  • 中山做网站比较好北京seo编辑
  • 苏州做网站的5118站长网站
  • 公司做网站要花多少钱浙江seo
  • 网站做地域屏蔽外链网盘网站
  • 做视频网站要用到的服务器如何做好互联网营销
  • 柳州企业网站开发平台郑州网站建设方案