Spring Boot 返回 XML 数据,一分钟搞定!
Spring Boot 返回 XML 数据,前提必须已经搭建了 Spring Boot 项目,所以这一块代码就不贴了,可以点击查看之前分享的 Spring Boot 返回 JSON 数据,一分钟搞定! 。
你所需具备的基础
- 什么是 Spring Boot?
- Spring Boot 核心配置文件详解
- Spring Boot 开启的 2 种方式
- Spring Boot 自动配置原理、实战
- Spring Boot 2.x 启动全过程源码分析
如何返回 XML 数据?
那么如何返回 XML 格式数据呢?其实很简单!
加入 XML 工具依赖
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
不用带版本号,因为在
spring-webmvc
包中已经定义好了,只是没有把依赖传递过来而已,如下面源码所示。
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.9.5</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>jcl-over-slf4j</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
<optional>true</optional>
</dependency>
可以看到
<optional>true</optional>
,所以,只要手动显示加下这个依赖就行了,关于这个标签可以点击
这里
查看这篇文章。
返回 XML 数据格式定义
1)定义返回方式
在 Controller 类上面用
@RestController
定义或者在方法上面用
@ResponseBody
定义,表明是在 Body 区域输出数据。
2)定义返回类型
此时
Content-Type
默认为
application/xhtml+xml;charset=UTF-8
格式,可以手动改变下类型:
application/xml;charset=UTF-8
。
@RequestMapping(value = "/test" produces = MediaType.APPLICATION_XML_VALUE)
表明是用
application/xml
格式输出数据。
3)定义输出格式
控制层方法直接返回对象,对象会自动转换为 XML 格式,不过是默认的标签,可以通过以下标签进行自定义 XML 格式。
@JacksonXmlRootElement(localName = "response")
public class UserXmlVO {
@JacksonXmlProperty(localName = "user_name")
private String name;
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "order_info")
private List<OrderInfoVO> orderList;