重生之 SpringBoot3 入门保姆级学习(15、内容协商返回不同数据类型)

重生之 SpringBoot3 入门保姆级学习(15、内容协商返回不同数据类型)

      • [3.3.3 改变 Accept 实现内容协商](#3.3.3 改变 Accept 实现内容协商)
      • [3.3.4 改变 application.proerties 实现内容协商](#3.3.4 改变 application.proerties 实现内容协商)

3.3.3 改变 Accept 实现内容协商


  1. 添加支持写出 xml 内容的 Maven 依赖并刷新 Maven
xml 复制代码
<!--        支持写出 xml 内容依赖-->
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
</dependency>
  1. 在 Person 类中加入 @JacksonXmlRootElement 注解使其可以返回 xml
java 复制代码
package com.zhong.web.dto;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @ClassName : Person
 * @Description :
 * @Author : zhx
 * @Date: 2024-06-02 13:05
 */
@JacksonXmlRootElement // 加入注解使其可以返回 xml
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
    private Integer id;
    private String userName;
    private String like;
    private Integer age;
}
  1. 使用 POSTMAN 工具测试

    https://www.postman.com/downloads/?utm_source=postman-home

  1. 默认 Accept 携带的是 */*
  1. 我们把 Accept 的值修改为 application/xml

3.3.4 改变 application.proerties 实现内容协商


  1. 开启基于请求参数的内容协商功能
yml 复制代码
# 开启基于请求参数的内容协商功能
spring.mvc.contentnegotiation.favor-parameter=true

# 默认访问参数名是 format 这里修改为 type 之后
# 原来的 http://localhost:8080/person?format=json
# 要换成 http://localhost:8080/person?type=xml
#spring.mvc.contentnegotiation.parameter-name=type
  1. 获取 json 类型的数据

    http://localhost:8080/person?format=json

  1. 获取 xml 类型的数据

    http://localhost:8080/person?format=xml

相关推荐
MartinYeung520 分钟前
[论文学习]PACT:溯源感知能力合约——面向智能体安全的参数级溯源
人工智能·学习·安全
小O的算法实验室2 小时前
AAAI-26,全局相关性学习:通过谱图神经网络增强进化算法
神经网络·学习·算法
宁风NF2 小时前
JavaScript:网络请求与前端通信
开发语言·前端·javascript·网络·学习·ecmascript
神神道呵he3 小时前
[深度学习] 大模型学习-RAG技术全景解析
人工智能·深度学习·学习
MartinYeung53 小时前
[论文学习]AgentSafetyBench:大语言模型智能体安全评估基准深度分析
学习·安全·语言模型
星夜夏空994 小时前
C++学习(13)——数据库的使用(MySQL)
数据库·c++·学习
艾莉丝努力练剑5 小时前
【Linux:动静态库】Linux 动静态库与可执行文件
linux·运维·服务器·学习·面试·文件系统·动静态库
宁风NF5 小时前
JavaScript:内存、垃圾回收、性能优化
开发语言·前端·javascript·学习·性能优化·es6
凉、介5 小时前
Armv8 原子性:体系结构保证与编程语义
linux·学习·嵌入式·arm·原子操作·atomic
编程圈子6 小时前
电机驱动开发学习22. 霍尔电角度标定(自动/手动标定与Flash固化)
驱动开发·学习