• SpringBoot项目使用xml格式的出入参


    1. 新建一个SpringBoot web项目
    2. 启用jackson的xml依赖(SpringBoot已经做好了版本适配,故不需要声明版本号)
    <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
    </dependency>
    
    1. 编写一个Controller
    package com.example.mono;
    
    import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
    import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
    import lombok.Data;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.http.MediaType;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @SpringBootApplication
    public class MonoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(MonoApplication.class, args);
        }
    
    }
    
    @RestController
    @RequestMapping("/my")
    class MyController {
    
        /**
         * 1:consumes = MediaType.APPLICATION_XML_VALUE 表示接受xml格式的入参,框架会将xml格式的入参转换为bean。
         * 2:produces = MediaType.APPLICATION_XML_VALUE 表示返回xml格式的结果,框架会将返回值bean转换为xml。
         *
         * @param me
         * @return
         */
        @PostMapping(value = "/getMe", consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)
        public Me geMe(@RequestBody Me me) {
            return me;
        }
    
    }
    
    @Data
    @JacksonXmlRootElement(localName = "YyghInterface")  //本类对应的xml的根节点名称
    class Me {
    
        @JacksonXmlProperty(localName = "yyjsls")  //声明字段在xml中的节点名称
        private String hospitalSettleSerialNo;
    
        @JacksonXmlProperty(localName = "pay")
        private String amount;
    
        @JacksonXmlProperty(localName = "zffs")
        private String payChannel;
    
    }
    
    1. postman请求localhost:8080/my/getMe(注意post方法,body为raw-xml)
    接口输入:
    <interface>
        <yyjsls>111111</yyjsls>
        <pay>11.11</pay>
        <zffs>1</zffs>
    </interface>
    
    接口返回值:
    <interface>
        <yyjsls>111111</yyjsls>
        <pay>11.11</pay>
        <zffs>1</zffs>
    </interface>
    
    1. 使用原生SpringBoot按上述步骤,完全可以秒支持xml的。由于公司项目框架基于SpringBoot做了改造,故死活以json格式处理出入参,问问技术组如何解决吧。
  • 相关阅读:
    在cmd中登录ftp服务器
    Is valid identifier?
    Hosting Your Own NuGet Feeds
    NuGet学习笔记
    软件版本的处理
    有些事明显对自己有益,为什么却无法去做?
    .net 程序员成长路线图?
    正确跑步姿势是怎样的?
    什么叫做内心强大?怎样变成一个内心强大的人?
    使用命令行复制目录
  • 原文地址:https://www.cnblogs.com/JaxYoun/p/16011168.html
Copyright © 2020-2023  润新知