Spring Controller接口地址的骚玩法,很有用!

news2024/12/27 2:27:13

一,背景

项目里有一个接口需要对外提供,对方的解析方式有不同的方式,一个是使用流行的json格式,另外一个却是老系统,只能用xml格式,但是接口内部的实现逻辑是完全一样的,为了适配更多调用方的需求,就需要将同样的接口数据用两种格式提供出去,总觉得哪儿不对劲儿,写了不好的代码。刚好发现Spring 5.3之后 之后出现的一个新特性——路径后缀匹配,可以支持同一个接口,根据调用方的需求,自动做转换。

二,实现步骤

1,确认当前使用的Spring的版本是5.3及之后的
2,如果是5.3x版本,需要配置

spring:

 mvc:

   contentnegotiation:

     favor-path-extension: true

3,如果是6.x版本可以直接实现 WebMvcConfigurer
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


@Component
public class PathWebMvcConfigurer implements WebMvcConfigurer {
    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        // 开启路径后缀功能
        configurer.favorPathExtension(true) ;
    }
}
4,定义一个接口, 路径中使用.*来做后缀, fmt这段可以随意命名
    @GetMapping("/{name}/fmt.*")
    @ResponseBody
    public Object p1(@PathVariable String name) {
        List<User> userList =  userService.list();
        return userList.stream().filter(u -> name.equals(u.getName()) ).collect(Collectors.toList()) ;
    }
5,默认是支持json格式的,如果需要支持xml,需要引入
<dependency>
	<groupId>com.fasterxml.jackson.dataformat</groupId>
	<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
6, 请求json格式的结果

7, 请求xml格式的结果

如果对你有帮助,记得点赞关注哟!

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

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

相关文章

AS400==创建主机,使用客户端连接上主机

因为AS400基于的CPU架构和自己用的PC不一致&#xff0c;所以要么自己买台AS400主机/上云服务买一台&#xff0c;或者去些网站免费申请一台。 申请地址 PUB400.COM - Your public IBM i server 注册成功后获取到账号密码 然后下载客户端 TN5250 Terminal Emulation for Win…

10. 计算机网络HTTP协议

1. 前言 无论是作为后端开发、前端开发、测试开发程序员或者是运维人员,在面试过程中,大概率都会被问到 HTTP 协议相关题目。 因为伴随着 2010 年之后移动互联网在全世界的高速发展,各种各样的浏览器(Chrome、FireFox、Safari 等)层出不穷,也诞生了诸多服务端开发的语言…

全志Tina_NPU开发部署说明

1 前言 1.1 读者对象 本文档&#xff08;本指南&#xff09;主要适用于以下人员&#xff1a; • 技术支持工程师 • 软件开发工程师 • AI 应用案客户 2 正文 2.1 NPU 开发简介 • 支持int8/uint8/int16 量化精度&#xff0c;运算性能可达1TOPS. • 相较于GPU 作为AI …

关于CSDN登录失效,频繁弹到登录界面

典型特征&#xff1a; 访问其它任何网站都没问题&#xff0c;就是访问任何一个和CSDN有关的网页都会弹到登录界面&#xff0c;且提示认证失败或者Cookies失效等。 刚才我照旧打开CSDN时&#xff0c;CSDN弹出重定向失败&#xff0c;提到了Cookies问题&#xff0c;在个人中心也弹…

ECCV 2024|是真看到了,还是以为自己看到了?多模态大模型对文本预训练知识的过度依赖该解决了

随着大型语言模型&#xff08;LLMs&#xff09;的进步&#xff0c;多模态大型语言模型&#xff08;MLLMs&#xff09;迅速发展。它们使用预训练的视觉编码器处理图像&#xff0c;并将图像与文本信息一同作为 Token 嵌入输入至 LLMs&#xff0c;从而扩展了模型处理图像输入的对话…

移动UI:活泼风格如何识别,有什么应用场景。

在移动UI设计中&#xff0c;活泼风格通常具有以下特征&#xff1a; 1. 鲜艳的色彩&#xff1a; 活泼风格的移动UI通常采用鲜艳、明快的色彩&#xff0c;如橙色、黄色、绿色等&#xff0c;以增加活力和生机。 2. 元素动画&#xff1a; 活泼风格的UI设计通常包含丰富的动画效…

无缝融入,即刻智能[2]:MaxKB内置强大工作流引擎,编排AI工作流程,满足多样化业务需求

无缝融入,即刻智能[2]:MaxKB内置强大工作流引擎,编排AI工作流程,满足多样化业务需求 1.简介 MaxKB(Max Knowledge Base)是一款基于 LLM 大语言模型的开源知识库问答系统, 官方网址:https://maxkb.cn/ GitHub:https://github.com/1Panel-dev/MaxKB 1.1 产品优势 开箱即…

嵌入式Linux系统中LCD屏驱动框架基本实现

大家好,今天主要给大家分享一下,如何使用linux系统中LCD屏驱动框架Framebuffer编写具体的代码。 第一:如何编写字符设备驱动程序 1、驱动框架基本操作: 驱动主设备号 * 构造file_operations结构体,填充open/read/write等成员函数 * 注册驱动:register_chrdev(major, name…

C#中WebView2调用与交互实现

简要说明&#xff1a; 此控件实际上是 [WebView2 COM API] &#xff08;https://aka.ms/webview2&#xff09; 的包装器。 可以通过访问 Microsoft.Web.WebView2.Wpf.WebView2.CoreWebView2 属性来直接访问基础 ICoreWebView2 接口及其所有功能。 一些最常见的 COM 功能也可以…

解决k8s flannel网络插件国内镜像docker拉取不到问题

一、准备下载资源 https://download.csdn.net/download/weixin_43205308/89608560 以下&#xff0c;每个k8s节点都要执行 二、载入镜像 解压上面的下载资源的文件夹后&#xff0c;会有图中的两个资源 载入资源 docker load --input flannel-flannel-v0.25.1-amd64.tar.gzd…

59在Linux中加docker中加mysql,tomcat,redis

一、引言 1.1 环境不一致 我本地运行没问题啊&#xff1a;由于环境不一致&#xff0c;导致相同的程序&#xff0c;运行结果却不一致。 1.2 隔离性 哪个哥们又写死循环了&#xff0c;怎么这么卡&#xff1a;在多用户的操作系统下&#xff0c;会因为其他用户的操作失误影响到你自…

基于STM32的智能家居控制系统教程

目录 引言环境准备智能家居控制系统基础代码实现&#xff1a;实现智能家居控制系统 照明控制模块温度与湿度监控模块安防监控模块用户界面与远程控制应用场景&#xff1a;智能家居优化常见问题与解决方案收尾与总结 引言 随着物联网技术的发展&#xff0c;智能家居控制系统变…

libvir服务机制与通信原理

libvir服务机制 前言 libvirt服务机制是一个复杂的结构&#xff0c;里面包含了event事件&#xff0c;rpc网络通信&#xff0c;线程池以及相关的job机制&#xff0c;哪一个单拿出来都是一个复杂的模型结构&#xff0c;更何况libvirt服务是这几个机制之间相互协作的复杂结构&…

【数据结构】——二叉树OJ题

文章目录 前言1. 单值二叉树2. 检查两颗树是否相同3. 判断一棵树是否为另一颗树的子树4. 对称二叉树5. 平衡二叉树6. 二叉树的前序遍历7. 二叉树的中序遍历8. 二叉树的后序遍历9. 二叉树的构建及遍历 前言 我们先想想二叉树我们学习了哪些内容再来做题哈 其实学习二叉树重要的…

JavaScript (十四)——JavaScript typeof和类型转换

目录 JavaScript typeof, null, 和 undefined typeof 操作符 null undefined undefined 和 null 的区别 JavaScript 类型转换 JavaScript 数据类型 JavaScript 类型转换 将数字转换为字符串 将布尔值转换为字符串 将日期转换为字符串 将字符串转换为数字 一元运算符…

新浪微博笔试秋招管培笔试测评肯耐珂萨题型题库解析

新浪微博的笔试是该公司用于筛选潜在候选人的重要环节&#xff0c;主要目的在于评估应聘者的逻辑推理、图表计算和文字理解能力。以下是新浪微博笔试题型的详细解析&#xff1a; 1. 逻辑推理 - **题型概述**&#xff1a;逻辑推理部分通常包含20题&#xff0c;考察应试者的逻…

算法板子:树形DP、树的DFS——树的重心

思想&#xff1a; 代码&#xff1a; #include <iostream> #include <cstring> using namespace std;const int N 1e5 10;// vis标记当前节点是否被访问过; vis[1]true代表编号为1的节点被访问过 bool vis[N]; // h数组为邻接表; h数组上的每个坑位都串了一个单链…

商业购物中心开业活动方案怎么写?附230个案例

商业购物中心开业活动方案的撰写是一个综合性的过程&#xff0c;需要结合购物中心的特点、目标消费群体、市场环境以及活动目的等多方面因素进行考虑。 以下是一个详细的撰写指南&#xff0c;带你一步步了解如何撰写一个成功的商业购物中心开业活动方案。 码字不易&#xff0…

处理kkFileView的com.aspose:aspose-cad:iar:23.9 not found 问题

背景: 一款很强大的开源的文件预览工具包下载地址:aspose-cad-23.9.jar 启动成功界面: 一、.问题描述:com.aspose:aspose-cad:iar:23.9 not found 处理方案:直接下载aspose-cad-23.9.jar 安装到本地 二、处理步骤(win环境):1.安装maven 下载地址:https://maven.apach…

CSP-J 复赛 模拟题

1.生产计划&#xff1a; 样例 #1 样例输入 #1 2 4 5 6 12 1 3 6 15 8 1 3 100 3 200 4 300 6 100 样例输出 #1 YES NO 2.分组和为3&#xff1a; 样 例 # 1 样 例 输 入 # 1 5 1 1 1 2 1 样 例 输 出 # 1 2 样 例 # 2 样 例 输 入 # 2 7 2 2 1 1 2 1 1 样 例 输 出 # …