zoukankan      html  css  js  c++  java
  • SpringBoot--整合XML格式数据传输

    SpringBoot--整合XML格式数据传输

    现在前后端交互都使用json格式,但是在某些特定领域,还是要求使用xml格式数据进行传输。

    在前台传输到后台的xml格式数据,可以将其封装到pojo实体类中,也可以将pojo实体类响应回xml格式的数据。

    1、导入依赖

      <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
    <!--xml和实体类转换的依赖-->
    	<dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-xml</artifactId>
                <version>2.9.8</version>
            </dependency>
    
    
    

    2、实体类

    如果需要对类名、字段和xml数据节点之间进行映射,可以使用注解。

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

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

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

    //实体类,getter、setter已省略
    public class User implements Serializable {
    
        private String name;
        private Integer id;
        private String sex;
        private Integer age;
    }
    
    
    

    3、转换控制器

    @RestController
    public class XMLController {
    
        //application/xml 指定返回xml格式的数据,此处不指定默认使用json
        @PostMapping(value = "/xml",produces = "application/xml;charset=UTF-8")
        public User xml(@RequestBody User users){
            System.out.println(users);
            return users;
        }
    }
    

    测试如图

    SpringBoot返回数据的时候会默认使用实体类名(非全类名)作为根节点。

    但是没做映射,那么入参根节点必须使用全类名,否则不识别。

    使用注解起别名,那就能被识别。

    //实体类,getter、setter已省略
    @JacksonXmlRootElement(localName = "User")
    public class Person {
        private String name;
        private Integer id;
        private String sex;
    }
    
    
  • 相关阅读:
    Linux菜鸟起飞之路【三】Linux常用命令
    Linux菜鸟起飞之路【二】Linux基本常识
    Linux菜鸟起飞之路【一】基本知识与Linux的安装
    交换机和路由器区别
    netdom join more ou
    keepalive.conf配置模板
    mysql7.7.22 Gtid主从搭建
    python 列表处理
    python openpyxl模块使用
    mysql5.7
  • 原文地址:https://www.cnblogs.com/cgl-dong/p/13827401.html
Copyright © 2011-2022 走看看