SpringBoot内容协商机制(就是接受数据的类型如json,xml)

目录

一、基于请求头的内容协商机制

二、基于请求参数的内容协商机制


一、基于请求头的内容协商机制

如果我们的Java服务为浏览器和安卓手机同时提供服务,浏览器期望接受的请求是JSON格式,安卓客户端期望接收的请求是XML格式,这个时候是否需要写两个方法?

不需要!SpringBoot的内容协商机制可以解决这个问题。

  • 内容协商机制:根据客户端接收能力不同,SpringBoot 返回不同媒体类型的数据。

Spring默认支持内容协商机制,但SpringBoot默认只支持返回Json数据,所以需要导入jackson-dataformat-xml让SpringBoot支持返回xml数据

引入依赖 

  <!-- 引入支持返回 xml 数据格式 --><dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.8.5</version></dependency>

编写控制器

@Controller
@RequestMapping("/user")
public class MyController1 {@Autowiredprivate UserMapper userMapper;@RequestMapping("/findById")@ResponseBodypublic user findById(Integer id){return userMapper.findById(id);}
}

postman进行测试

默认情况下,支持返回的是json格式,修改的在要在请求头中的Accept值修改为application/xml

默认

修改为xml数据格式

二、基于请求参数的内容协商机制

SpringBoot默认情况下是根据请求头不同,返回不同的数据格式。同时我们也可以配置基于请求参数的内容协商,也就是请求参数值的不同,返回不同的数据。

在配置文件中开启基于参数的内容协商机制

spring:#开启请求参数的内容协商机制mvc:contentnegotiation:#开启基于参数的内容协商机制favor-parameter: true#给这个键起名字,这个键的值就是xml,json那些数据格式parameter-name: format

使用postman进行测试 

json

 xml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/2440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++中的智能指针

C中的智能指针 文章目录 C中的智能指针1.为什么需要智能指针&#xff1f;2.智能指针的类型2.1 std::shared_ptr2.2 std::unique_ptr2.3 std::weak_ptr Reference 笔者在学习ROS2的过程中&#xff0c;遇到了std::make_shared这种用法&#xff0c;一眼看不懂&#xff0c;才发现笔…

vue2使用过滤器实现菜单栏文字动态显示

文章目录 前言一、过滤器filters1.data数据2.beforeCreate 二、菜单栏文字动态显示 前言 左侧菜单栏有缩进&#xff0c;所以不同级别的菜单名可显示的文字数不同。顶部菜单栏是下拉框&#xff0c;所以文字是固定的 一、过滤器filters 由于filters不能使用this为undefined&…

Java 网络编程之TCP(三):基于NIO实现服务端,BIO实现客户端

前面的文章&#xff0c;我们讲述了BIO的概念&#xff0c;以及编程模型&#xff0c;由于BIO中服务器端的一些阻塞的点&#xff0c;导致服务端对于每一个客户端连接&#xff0c;都要开辟一个线程来处理&#xff0c;导致资源浪费&#xff0c;效率低。 为此&#xff0c;Linux 内核…

【CV】opencv特征匹配算法

特征匹配是计算机视觉领域中的一项关键任务&#xff0c;它用于在不同图像中寻找相似的特征点&#xff0c;并将它们进行匹配。这些特征点可以是图像中的角点、边缘、斑点等&#xff0c;在不同的图像中可能因为旋转、缩放、光照变化等因素发生变化。 在OpenCV中&#xff0c;提供…

华为数通HCIA ——企业网络架构以及产品线

一.学习目标&#xff1a;精讲网络技术&#xff0c;可以独立搭建和维护中小企业网络&#xff01; 模拟器&#xff08;华为方向请安装ENSP&#xff0c;Ensp-Lite已有安装包&#xff0c;号称功能更加完善-这意味着要耗费更多的系统资源但是仅对华为内部伙伴申请后方可使用&#x…

VS2022配置和搭建QT

一、下载QT 可以去QT官网下载:https://www.qt.io/product/development-tools。 直接安装。 二、安装qt插件 直接在vs插件市场搜索就行。 安装的时候根据提示&#xff0c;关闭vs自动安装 再次进去vs提示你选择qt版本&#xff0c;psth里边找到安装版本的qmake.exe就行 配…

卡尔曼滤波器(一):卡尔曼滤波器简介

观看MATLAB技术讲座笔记&#xff0c;该技术讲座视频来自bilibili账号&#xff1a;MATLAB中国。 一、什么是卡尔曼滤波器 卡尔曼滤波器是一种优化估计算法&#xff0c;是一种设计最优状态观测器的方法&#xff0c;其功能为&#xff1a; 估算只能被间接测量的变量&#xff1b;通…

https加密证书

网站要出去安全模式访问&#xff0c;加强网络安全就需要使用HTTPS加密证书。 本文主要介绍什么是HTTPS加密证书&#xff0c;如何申请HTTPS加密证书&#xff0c;如何安装HTTPS加密证书等问题展开讨论。 什么是HTTPS加密证书&#xff1f; HTTPS加密证书的行业产品用语叫作SSL证…

互联网大佬座位排排坐:马化腾第一,雷军第二

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 这是马化腾、雷军、张朝阳、周鸿祎的座位&#xff0c;我觉得是按照互联网地位排序的。 马化腾坐头把交椅&#xff0c;这个没毛病&#xff0c;有他在的地方&#xff0c;其他几位都得喊声“大哥”。雷军坐第二把交椅…

Go语言常见错误 | 工程组织不合理 (工程结构和包的组织)

编写程序的过程中,组织代码的方式,不仅影响到代码的质量,也决定了团队的协作效率。在使用Golang进行项目开发时,工程组织不合理(包括工程结构和包的组织)是个常见的问题。下文将详述这个问题,并提供改善的方案。 工程结构不合理 Golang项目的工程结构对于代码的模块性…

ApplicationListener监听器

在spring-context 5.3.26中来看一下它的定义&#xff1a; package org.springframework.context;import java.util.EventListener; import java.util.function.Consumer;FunctionalInterface public interface ApplicationListener<E extends ApplicationEvent> extends…

[论文笔记] megatron训练参数:dataloader_type

在深度学习中&#xff0c;dataloader_type参数通常控制着数据的加载、处理和输入到模型的方式。不同的dataloader可能会按照不同的策略处理数据集&#xff0c;这可以显著影响模型训练和评估的效果。具体来说&#xff0c;single和cyclic类型通常如此区别&#xff1a; Single Dat…

关键绩效指标(KPI):明确目标及跟踪进展

在企业管理中&#xff0c;关键绩效指标&#xff08;KPI&#xff09;是一种重要的工具&#xff0c;用于明确目标并跟踪进展。通过设定和监控这些指标&#xff0c;企业能够确保员工、团队和整个组织都朝着既定的目标努力。本文将详细探讨关键绩效指标的重要性、设定方法以及如何有…

缓解工作压力的小窍门:保持健康与创新

目录 1 前言2 工作与休息的平衡3 保持心理健康4 社交与网络建设5 结语 1 前言 作为程序员&#xff0c;我们常常承受着高度的工作压力和持续的创新挑战。为了保持高效和健康&#xff0c;我们需要采取一些方法来缓解工作压力&#xff0c;同时促进个人的心理和身体健康。 2 工作…

大模型的原理与特点,奇异值分解(SVD);低秩近似

目录 一、大模型的原理与特点 二、一个基本架构,三种形式: Parameter-Efficient Fine-Tuning

5. Tailwind CSS 响应式设计的实现

Tailwind CSS 是一个功能类优先的 CSS 框架&#xff0c;它允许开发者通过使用响应式工具类来构建自适应的用户界面。这些工具类可以在不同的断点处有条件地应用&#xff0c;使得在不离开 HTML 的情况下构建复杂的响应式界面变得轻而易举。 基本概念 响应式设计在 Tailwind CS…

Python dlib(HOG+SVM)人脸识别总结

Python dlib(HOG+SVM)人脸识别总结 面部标志检测 dlib 68点(HOG+SVM),194点人脸识别模型,包括口(外嘴唇,内嘴唇),鼻,眉毛(左右眉),眼睛(左右眼),下鄂 5点面部标志检测器(左眼2点,右眼2点,鼻子1点)面部对齐更高效 眨眼检测 ear 眨眼瞬间达到0 疲劳驾驶检测…

kill 端口所属进程

IC:\Users\23022>netstat -ano | findstr “8080” TCP 127.0.0.1:8080 0.0.0.0:0 LISTENING 13532 C:\Users\23022>taskkill /f /t /pid 13532 成功: 已终止 PID 21028 (属于 PID 13532 子进程)的进程。 成功: 已终止 PID 13532 (属于 PID 19260 子进程)的进程。 C:\U…

如何在PostgreSQL中设置自动清理过期数据的策略

文章目录 方法一&#xff1a;使用临时表和定期清理步骤&#xff1a;示例代码&#xff1a;创建临时表&#xff1a;定期清理脚本&#xff08;bash psql&#xff09;&#xff1a; 方法二&#xff1a;使用分区表和定期清理步骤&#xff1a;示例代码&#xff1a;创建分区表&#xf…

初始化Git仓库时应该运行哪个命令?

文章目录 初始化Git仓库时&#xff0c;你应该运行git init这个命令。这个命令的作用是在你当前所在的目录里创建一个新的Git仓库。这样&#xff0c;你就可以在这个目录里开始使用Git来管理你的文件了。 下面我给你举个详细的例子来说明一下&#xff1a; 首先&#xff0c;你需要…