文档章节

Spring Boot 返回 XML 数据,一分钟搞定!

Java技术栈
 Java技术栈
发布于 2018/12/25 18:28
字数 778
阅读 82
收藏 6

Spring Boot 返回 XML 数据,前提必须已经搭建了 Spring Boot 项目,所以这一块代码就不贴了,可以点击查看之前分享的 Spring Boot 返回 JSON 数据,一分钟搞定!

你所需具备的基础

更多请在Java技术栈公众号后台回复关键字:boot。

如何返回 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;
	
	// get set 略
	
}

上面演示了几个常用的注解。

@JacksonXmlRootElement: 用在类上,用来自定义根节点名称;

@JacksonXmlProperty: 用在属性上,用来自定义子节点名称;

@JacksonXmlElementWrapper: 用在属性上,可以用来嵌套包装一层父节点,或者禁用此属性参与 XML 转换。

更多注解可以查看这个包:

如何手动完成对象XML 的互转?

jackson-dataformat-xml 这个包里面有一个 com.fasterxml.jackson.dataformat.xml.XmlMapper 类,该类继承父类 com.fasterxml.jackson.databind.ObjectMapper,可以利用它来完成互转操作。

下面是几个参考方法:

com.fasterxml.jackson.dataformat.xml.XmlMapper#readValue
com.fasterxml.jackson.dataformat.xml.XmlMapper#writeValue
com.fasterxml.jackson.databind.ObjectMapper#writeValueAsString

更多相关的使用及原理可以查看这个包。

好了,Spring Boot 返回 XML 格式数据就是这么简单,有什么不懂的可以关注下面的Java技术栈公众号和大家一起学习讨论。

本文原创首发于公众号:Java技术栈(id:javastack),关注公众号在后台回复 "boot" 可获取更多,转载请原样保留本信息。

© 著作权归作者所有

Java技术栈
粉丝 179
博文 172
码字总数 150861
作品 0
深圳
架构师
私信 提问
Spring Boot 返回 JSON 数据,一分钟搞定!

在 WEB 项目中返回 JSON 数据是常见的交互形式,在 Spring Boot 中这一切都变得十分简单。So easy!!! 你所需具备的基础 什么是 Spring Boot? Spring Boot 核心配置文件详解 Spring Boot 开启...

Java技术栈
2018/12/14
109
0
Spring Boot 处理全局异常

很多文章中,处理Spring Boot的全局异常是,创建带ControllerAdvice的ExceptionHandler类,添加一个或多个ExceptionHandler来处理异常,例如将404,500等处理成自己的格式进行响应。 方法是:...

woooooody
2018/03/12
0
0
Spring Boot点滴笔记

Spring Boot导入xml配置文件 使用Spring Boot后再也不想回到一堆xml配置的spring项目中了。但Spring boot有时候也避免不了需要xml配置文件。 可以在启动类中加入@ImportResource Spring Boot...

hutaishi
2017/11/01
52
0
Spring Boot中如何扩展XML请求和响应的支持

在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理。那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式返回一个对象...

翟永超
2018/09/21
0
0
spring boot介绍及使用详解

spring boot介绍及使用详解 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需...

优惠码大使
07/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
1K
12
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
38
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部