Springboot学习问题记录
Posted yangtze-yufei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Springboot学习问题记录相关的知识,希望对你有一定的参考价值。
1、spring boot与cloud构建微服务,返回数据从json变成了xml
问题:本身spingboot项目是用@RestController注解,返回结果也是json格式,但是结合springcloud的eureka构建微服务之后,无论是消费者还是提供者,均返回的xml格式,必须在提供者与消费者的方法上添加produces=“application/json”,但是这样本身@RestController注解里集成的@ResponseBody不就没用了吗?
解决:把这个jackson-dataformat-xml依赖去掉。它是提供了jackson将实体类转化为xml相关的作用。而本身jackson是可以将实体类转化为json的,所以这样Jackson是可以将实体类转化为两种类型的数据,而具体要转化为哪一种数据,是要看http请求里面的accept头信息的,我的浏览器chrome的accept是 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 ,然后服务器会根据accept来决定是返回xml还是json,由于浏览器accept只有最后的*/*是匹配 application/json的,而application/xml在*/*前面,优先级比json高,所以用浏览器直接调用是会优先返回xml格式的。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</exclusion>
</exclusions>
</dependency>
以上是关于Springboot学习问题记录的主要内容,如果未能解决你的问题,请参考以下文章