• SpringBoot系列教程之定义接口返回类型的几种方式


    SpringBoot 系列教程之定义接口返回类型的几种方式

    实现一个 web 接口返回 json 数据,基本上是每一个 javaer 非常熟悉的事情了;那么问题来了,如果我有一个接口,除了希望返回 json 格式的数据之外,若也希望可以返回 xml 格式数据可行么?

    答案当然是可行的,接下来我们将介绍一下,一个接口的返回数据类型,可以怎么处理

    I. 项目搭建

    本文创建的实例工程采用 SpringBoot 2.2.1.RELEASE + maven 3.5.3 + idea 进行开发

    1. pom 依赖

    具体的 SpringBoot 项目工程创建就不赘述了,对于 pom 文件中,需要重点关注下面两个依赖类

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            com.fasterxml.jackson.dataformat
            jackson-dataformat-xml
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    注意 jackson-datafromat-xml 这个依赖,加上这个主要时为了支持返回 xml 格式的数据

    II. 返回类型设置的多种方式

    正常来讲,一个 RestController 的接口,默认返回的是 Json 格式数据,当我们引入了上面的 xml 包之后,会怎样呢?返回的还是 json 么?

    1.通过 produce 设置返回类型

    如果一个接口希望返回 json 或者 xml 格式的数据,最容易想到的方式就是直接设置 RequestMapping 注解中的 produce 属性

    这个值主要就是用来设置这个接口响应头中的 content-type ; 如我们现在有两个接口,一个指定返回 json 格式数据,一个指定返回 xml 格式数据,可以如下写

    @RestController
    public class IndexRest {
    
        @Data
        public static class ResVo {
            private int code;
            private String msg;
            private T data;
    
            public ResVo(int code, String msg, T data) {
                this.code = code;
                this.msg = msg;
                this.data = data;
            }
        }
        @GetMapping(path = "/xml", produces = {MediaTy
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 相关阅读:
    Scala、Spark的安装及配置
    图的广度遍历-邻接矩阵实现
    Linux性能测试之性能测试指标详解
    用Python判断是否为闰年并计算生肖年
    Kubernetes学习记录之Pod
    710. 黑名单中的随机数
    Spring Security 源码详解
    [激光原理与应用-17]:《激光原理与技术》-3- 激光的产生原理:微观粒子、能级、电子、光子、受激辐射
    Java反射、注解、枚举
    计算机操作系统:二级页表原理
  • 原文地址:https://blog.csdn.net/band_mmbx/article/details/126406826