Spring MVC框架支持RESTful,设计URL时可以使用{自定义名称}的占位符@Get(“/{id:[0-9]+}/delete“)
背景:在开发实践中,如果没有明确的规定URL,可以参考:
- 传统接口
获取数据列表,固定接口路径:/数据类型的复数- 例如:
/albums/select
- 例如:
- RESTful接口
- 根据ID获取某条数据:/数据类型的复数/{id}- 例如:/albums/select/{id:[0-9]+}
- 根据ID对某条数据执行某种操作:/数据类型的复数/{id}/命令,或/数据类型的复数/{id}/数据属性/命令- 例如:/albums/{id:[0-9]+}/delete
Spring MVC框架很好的支持了RESTful,在设计URL时,可以使用{自定义名称}的占位符表示此处应该是某个参数值,在此请求参数上使用@PathVariable注解,例如:
1.URL占位符设计接口
@PostMapping("/{id}/delete")
public ??? delete(@PathVariable Long id) {// 暂不关心方法的实现
}
或者 如果占位符中的名称,和请求参数的名称不一致,需要在@PathVariable注解中配置占位符名称
@PostMapping("/{id}/delete")
public ??? delete(@PathVariable("id") Long albumId) {// 暂不关心方法的实现
}
- 实际效果



当设计成以上格式,则客户端提交请求时,占位符位置无论是什么值,都可以匹配上以上设计的路径!注意:如果客户端提交的请求路径中,占位符位置的内容无法被转换成String类型时,将出现400错误。
2.URL正则设计接口
在设计占位符时,可以在占位符名称的右侧、在右大括号的左侧添加1个冒号,并在冒号的右侧可以添加正则表达式,以限制参数值的基本格式,例如:
@PostMapping("/{id:[0-9]+}/delete")
public ??? delete(@PathVariable Long id) {// 暂不关心方法的实现
}
如果客户端提交的请求路径中,占位符位置的内容不匹配以上正则表达式时,将出现404错误。
另外,使用了占位符及互斥的正则表达式的配置,是允许共存的,例如:
@Get("/{id:[0-9]+}")
public ??? getStandardById(@PathVariable Long id) {// 暂不关心方法的实现
}@Get("/{name:[a-z]+}")
public ??? getStandardByName(@PathVariable String name) {// 暂不关心方法的实现
}
注意: 如果以上两个方法的占位符值都是纯数字的,那么一个url将可以匹配以上2个正则表达式,
则Spring MVC框架无法选取,将出现错误!
3.URL占位符跟传统接口共存,优先使用精准匹配的传统接口
另外不使用占位符的配置,与使用了占位符的配置,是允许共存的,例如:
@Get("/{name:[a-z]+}")
public ??? getStandardByName(@PathVariable String name) {// 暂不关心方法的实现
}@Get("/test")
public ??? testStandardByName(String name) {// 暂不关心方法的实现
}
当提交了对应 /test 的请求时,会执行以上第2个方法,即精准匹配的方法,而不会执行使用了占位符的方法。
创造价值,乐哉分享!
一起入门后端 204146007
相关文章:
Spring MVC框架支持RESTful,设计URL时可以使用{自定义名称}的占位符@Get(“/{id:[0-9]+}/delete“)
背景:在开发实践中,如果没有明确的规定URL,可以参考: 传统接口 获取数据列表,固定接口路径:/数据类型的复数 例如:/albums/select RESTful接口 - 根据ID获取某条数据:/数据类型的复数/{id} - 例…...
【GoLang】哪些大公司正在使用Go语言
你见过哪些令你膛目结舌的代码技巧? 文章目录 你见过哪些令你膛目结舌的代码技巧?前言:哪些大公司正在使用Go语言谷歌(Google):脸书(Facebook):亚马逊(Amazon…...
美团外卖商超商品销量数据
美团外卖商超商品月销量 字段名 店铺id 店铺名称 商品id 商品名称 商品分类 规格名 原价 现价 月销 规格属性 描述 商品图片 含商家月销量...
【C++高阶(八)】单例模式特殊类的设计
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:C从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习C 🔝🔝 单例模式 1. 前言2. 设计一个不能被拷贝/继承的…...
Linux之进程(五)(进程控制)
目录 一、进程创建 1、fork函数创建进程 2、fork函数的返回值 3、fork常规用法 4、fork调用失败的原因 二、进程终止 1、进程终止的方式 2、进程退出码 3、进程的退出方法 三、进程等待 1、进程等待的必要性 2、wait函数 3、waitpid函数 四、进程程序替换 1、概念…...
63. 不同路径 II 23.12.21(二)
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角…...
【线性代数】两个向量组等价,其中一个向量组线性无关,另一个向量组也是线性无关吗?
一、问题 两个向量组等价,其中一个向量组线性无关,另一个向量组也是线性无关吗? 二、答案 不一定,当两个向量组中的向量个数也相同时,结论才成立.若向量个数不相同,结论不成立. 例如: 向量组一:(1,0),(0,1) 向量组二:(1,0),(0,1),(1,1) 两…...
c语言:指针作为参数传递
探究实参与形参它们相互独立 由于主调函数的变量a,b与被调函数的形参x,y它们相互独立。函数 swap 可以修改变量x,y,但是却无法影响到主调函数中的a,b。 现在利用取地址运算符,分别打印它们的首地址&#x…...
YOLOv5性能评估指标->mAP、Precision、Recall、FPS、Confienc (讲解论文关注的主要指标)
简介 这篇博客,主要给大家讲解我们在训练yolov5时生成的结果文件中各个图片及其中指标的含义,帮助大家更深入的理解,以及我们在评估模型时和发表论文时主要关注的参数有那些。本文通过举例训练过程中的某一时间的结果来帮助大家理解…...
陶建辉在 CIAS 2023 谈“新能源汽车的数字化”
近年,中国的新能源汽车发展迅猛,在全球竞争中表现出色,已经连续 8 年保持全球销量第一。在新兴技术的推动下,新能源汽车的数字化转型也正在加速进行,从汽车制造到能源利用、人机交互,各个环节都在进行数字化…...
PSP - 结构生物学中的机器学习 (NIPS MLSB Workshop 2023.12)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/135120094 Machine Learning in Structural Biology (机器学习在结构生物学中) 网址:https://www.mlsb.io/ Workshop at the 37th Co…...
某领先的集成电路研发中心:建立跨网交换平台 杜绝数据泄露风险
1、客户介绍 某技术领先的集成电路研发中心,是产学研合作的国家级集成电路研发中心,致力于解决重大共性技术的研发及服务支撑问题。该中心积极探索国际化道路,不断提升国际影响力,与多家国际著名集成电路企业和研发机构建立技术合…...
map|动态规划|单调栈|LeetCode975:奇偶跳
作者推荐 【贪心算法】【中位贪心】.执行操作使频率分数最大 涉及知识点 单调栈 动态规划 map 题目 给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数。在你跳跃的过程中,第 1、3、5… 次跳跃称为奇数跳跃,而第 2、…...
从安全性角度,看“可信数字底座”有何价值
文章目录 每日一句正能量前言概念对比安全技术对比思考与建议 每日一句正能量 不管现在有多么艰辛,我们也要做个生活的舞者。 前言 万向区块链此前提出“可信数字底座”这一概念和技术,即将区块链与物联网、人工智能、隐私计算等数字化技术相融合&#…...
软件设计模式:UML类图
文章目录 前言一、📖设计模式概述1.软件设计模式的产生背景2.软件设计模式3.设计模式分类 二、📣UML图1.类图概述2.类的表示法3.类与类之间的关系关联关系(1)单向关联(2)双向关联(3)…...
力扣题目学习笔记(OC + Swift)15. 三数之和
15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元…...
想将电脑屏幕共享到iPhone上,但电脑是Linux系统,可行吗?
常见Windows系统或macOS系统的电脑投屏到手机,难道Linux系统的电脑要投屏就是个难题吗? 想要将Linux系统投屏到iPhone、iPad、安卓设备、鸿蒙设备,其实你可以利用软件AirDroid Cast和Chrome浏览器!连接同一网络就可以直接投屏。 第…...
大华 DSS 城市安防数字监控系统 SQL 注入漏洞
漏洞简介 大华DSS数字监控系统itcBulletin接口对传入的数据没有预编译和充足的校验,导致该接口存在SQL注入漏洞,可通过注入漏洞获取数据库敏感信息。 资产测绘 app“dahua-DSS” 漏洞复现 POC: POST /portal/services/itcBulletin?wsdl HTTP/1.1 H…...
vue中的侦听器和组件之间的通信
目录 一、侦听器 监听基本数据类型: 监听引用数据类型: 计算属性和watch区别? 二、组件通信/传值方式 1.父子组件传值 父组件给子组件传值: (1)props (2)provide inject &…...
maven-shade-plugin有什么用
maven-shade-plugin 是 Maven 的一个插件,用于创建可执行的 JAR 文件,并且可以将所有依赖项打包到一个 JAR 文件中。 该插件的主要用途是创建包含所有依赖项的“fat” JAR(也称为“uber” JAR),使得应用程序可以作为一…...
图解人工智能(8)图灵测试作为智能与否的标准
有人不同意将图灵测试作为智能与否的标准。他们认为,就算机器表现得和人一样,也不能说机器拥有了智能,因为它只是一堆电路,和人的思维方式完全不同。你是否赞同这种说法?说说你赞同或反对的理由。开放讨论题。有几种观…...
从“鸡尾酒会”到手机通话:用生活场景图解CDMA码分多址到底是怎么“听清”你的
鸡尾酒会里的通信密码:用生活场景拆解CDMA如何从噪音中识别你的声音 1. 当鸡尾酒会遇见通信技术 想象你站在一个嘈杂的鸡尾酒会现场,四周充斥着数十人同时进行的对话。神奇的是,尽管声波在空气中混杂叠加,你的大脑却能自动过滤无关…...
基于 HarmonyOS 6.0 的空气质量监测页面实战:声明式 UI 构建与跨端开发深度解析
基于 HarmonyOS 6.0 的空气质量监测页面实战:声明式 UI 构建与跨端开发深度解析 前言 随着 HarmonyOS 生态不断完善,HarmonyOS 6.0 在分布式能力、ArkUI 声明式开发、跨端协同以及应用性能方面都有了明显提升。相比传统 Android 开发模式,Har…...
从VGG到ResNet:手把手教你用PyTorch复现DeepLabV2的ASPP模块(附代码)
从VGG到ResNet:手把手教你用PyTorch复现DeepLabV2的ASPP模块(附代码) 在计算机视觉领域,语义分割一直是极具挑战性的任务之一。不同于简单的图像分类,语义分割需要在像素级别上对图像进行理解和标注,这要求…...
FanControl风扇识别故障排查指南:从零开始解决“风扇隐身“问题
FanControl风扇识别故障排查指南:从零开始解决"风扇隐身"问题 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/G…...
从IR2184到全桥驱动:搞懂H桥电路防短路与死区设置(附电路图分析)
从IR2184到全桥驱动:H桥电路防短路与死区设置的工程实践 在电机控制系统中,H桥电路的设计可靠性直接决定了整个驱动方案的成败。许多工程师在初次设计基于IR2184的全桥驱动时,往往会被"上下桥臂直通"问题困扰——这种短路状态能在微…...
5分钟掌握暗黑破坏神2存档编辑:免费Web工具完整指南
5分钟掌握暗黑破坏神2存档编辑:免费Web工具完整指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2中反复刷装备而烦恼吗?想快速体验不同职业的build却不想从头练级?d2s-ed…...
Keil5/MDK美化进阶:除了改颜色,这些隐藏的编辑器效率设置你调了吗?
Keil5/MDK美化进阶:解锁编辑器隐藏效率设置 第一次打开Keil5时,我被它那略显单调的界面震惊了——这真的是21世纪的IDE吗?作为一名长期使用现代编辑器的开发者,我几乎立刻开始寻找美化方案。但很快我发现,仅仅改变颜色…...
别再折腾了!Windows 10/11下用VS2019编译ActiveMQ-CPP库的保姆级避坑指南
Windows平台下VS2019编译ActiveMQ-CPP库的终极解决方案 在Windows环境下使用Visual Studio 2019编译ActiveMQ-CPP库,对于需要实现高效消息队列通信的C开发者而言,是一个既关键又充满挑战的任务。不同于其他语言生态中"一键安装"的便捷&#x…...
从静电威胁到电路卫士:TVS选型实战与PCB防护布局
1. 静电威胁:电子产品的隐形杀手 第一次亲眼见到静电放电(ESD)毁掉芯片的场景,至今记忆犹新。那是在调试一块USB接口板时,同事刚摸到Type-C接口,屏幕突然蓝屏——价值2000元的FPGA就这么报废了。这种看不见…...
