Spring MVC 接口的访问方法如何设置
@RequestMapping
是 Spring 框架中用于映射 HTTP 请求到控制器方法的注解。它支持以下 HTTP 方法访问类型,通过method
属性指定:
- GET:用于获取资源
- POST:用于提交数据
- PUT:用于更新资源
- DELETE:用于删除资源
- PATCH:用于部分更新资源
- HEAD:类似于 GET 请求,但只返回状态行和头信息
- OPTIONS:返回服务器支持的 HTTP 方法
现实情况GET方法和POST方法的使用占很大的部分,主要讲解GET和POST方法的使用,其他方法举一反三就可以了
1.所有方法都可以访问情况
@RequestMapping可以是类注解也可以是方法注解,加在类上或者加在方法上都可以,一般来说都建议在类上面加上,因为方便我们快速的定位问题。
@RestController @RequestMapping("/user") //第一层路径 public class UserController {@RequestMapping("/u1") //第二层路径public String u1() {return "hello u1";} }
将程序运行起来后,通过浏览器输入 http://localhost:8080/user/u1 访问,当然端口有可能不是8080,在运行的时候看一下就可以了
结果:
1.1 类注解可以不写,但是一般建议写上
@RestController public class UserController {@RequestMapping("/u1")public String u1() {return "hello u1";} }
1.2 在写路径的时候不写 “/” 也可以,但是最好加上,这算是行业内的规范
@RequestMapping("user") public class UserController {@RequestMapping("u1")public String u1() {return "hello u1";} }
1.3 也可以写多层路径
@RestController @RequestMapping("/user") public class UserController {@RequestMapping("/u/u1")public String u1() {return "hello u1";} }
2. 限制特定的方法访问
这里我只举例get的访问方式,之后的简单介绍一下就ok了
在注解中添加method属性,可以通过这些属性设置访问的限定方式:
@RequestMapping添加method属性
@RestController @RequestMapping("/user") public class UserController {@RequestMapping(value = "/u1", method = RequestMethod.GET)public String u1() {return "hello u1";} }
或者使用
@GetMapping
@RestController @RequestMapping("/user") public class UserController {// @RequestMapping(value = "/u1", method = RequestMethod.GET)@GetMapping("/u1")//就只能被get方法访问public String u1() {return "hello u1";} }
不同方法测试
这里我们用postman来测试,不同的方法是否可以访问:
测试get方法:
测试post方法:
3.其他方法
快捷注解
为简化开发,Spring 还提供了针对特定 HTTP 方法的快捷注解:
@GetMapping
:等同于@RequestMapping(method = RequestMethod.GET)
@PostMapping
:等同于@RequestMapping(method = RequestMethod.POST)
@PutMapping
:等同于@RequestMapping(method = RequestMethod.PUT)
@DeleteMapping
:等同于@RequestMapping(method = RequestMethod.DELETE)
@PatchMapping
:等同于@RequestMapping(method = RequestMethod.PATCH)
这些快捷注解使代码更简洁易读,推荐优先使用。
相关文章:
Spring MVC 接口的访问方法如何设置
RequestMapping 是 Spring 框架中用于映射 HTTP 请求到控制器方法的注解。它支持以下 HTTP 方法访问类型,通过 method 属性指定: GET:用于获取资源POST:用于提交数据PUT:用于更新资源DELETE:用于删除资源PA…...
虚拟网络编辑器
vmnet1 仅主机模式 hostonly 功能:虚拟机只能和宿主机通过vmnet1通信,不可连接其他网络(包括互联网) vmnet8 地址转换模式 NAT 功能:虚拟机可以和宿主通过vmnet8通信,并且可以连接其他网络,但是…...
【hadoop】Flume日志采集系统的安装部署
一、Flume安装与配置 步骤: 1、使用XFTP将Flume安装包apache-flume-1.9.0-bin.tar.gz发送到master机器的主目录。 2、解压安装包: tar -zxvf ~/apache-flume-1.9.0-bin.tar.gz 3、修改文件夹的名字,将其改为flume,或者创建软…...
Kafka快速安装与使用
引言 这篇文章是一篇Ubuntu(Linux)环境下的Kafka安装与使用教程,通过本文,你可以非常快速搭建一个kafka的小单元进行日常开发与调测。 安装步骤 下载与解压安装 首先我们需要下载一下Kafka,这里笔者采用wget指令: wget https:…...
C# 实现雪花算法(Snowflake Algorithm)详解与应用
在现代分布式系统中,生成全局唯一的标识符(ID)是一个非常重要的问题。随着微服务架构和分布式系统的普及,传统的单机数据库生成 ID 的方式已无法满足高并发和高可用的需求。为了解决这个问题,Twitter 提出了 雪花算法&…...
中间件-MQ常见问题
MQ常见问题 消息丢失消息会在哪些环节丢失应对机制 消息的顺序性消息幂等消息积压的处理 消息丢失 消息会在哪些环节丢失 网络传输环节:生产者发送消息到broker,broker中master同步消息给slave,consumer消费消息,这3个环节都是跨…...
Redis学习打卡-Day2-缓存更新策略、主动更新策略、缓存穿透、缓存雪崩、缓存击穿
缓存更新策略 对于低一致性需求:使用内存淘汰机制。例如店铺类型的查询缓存。对于高一致性需求:主动更新,并以超时剔除作为兜底方案。例如店铺详情查询的缓存。 主动更新策略(缓存读写策略) 1. Cache Aside Pattern&…...
Git - 1( 14000 字详解 )
一: Git 初识 1.1 提出问题 在工作或学习中,我们常常会面临文档管理的问题,尤其是在编写各种文档时。为了防止文档丢失或因更改失误而无法恢复,我们常常会创建多个版本的副本,例如:“报告-v1”、“报告-v…...
搭建Centos环境安装禅道
关于禅道: 禅道项目管理软件,将CMMI模型的要求有机融合到项目管理各个过程,支持Scrum、瀑布、看板和狭义IPD并支持融合使用。禅道项目管理软件功能强大,集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体&…...
语音识别——语音转文字
SenseVoiceSmall阿里开源大模型,SenseVoice 是具有音频理解能力的音频基础模型,包括语音识别(ASR)、语种识别(LID)、语音情感识别(SER)和声学事件分类(AEC)或…...
语音识别——声纹识别
通过将说话人的声音与数据库中的记录声音进行比对,判断说话人是否为数据库白名单中的同一人,从而完成语音验证。目前,3D-Speaker 声纹验证的效果较为出色。 3D-Speaker 是一个开源工具包,可用于单模态和多模态的说话人验证、说话…...
c++作业整理2
直接访问就是直接利用变量的地址直接进行访问。 答案:T 解析:直接访问通过变量名(实际对应内存地址)访问数据,与间接访问(通过指针)相对。 char *s"C Language"; 表示 s 是一个指向字…...
无人机屏蔽与滤波技术模块运行方式概述!
一、模块运行方式 1. 电磁屏蔽模块 动态频段干扰:通过发射与无人机通信频段(如2.4GHz、5.8GHz、GPS频段等)同频的强干扰信号,切断无人机与遥控器、图传设备间的通信链路,实现迫降或返航功能。例如便携式屏蔽器通过…...
兼顾长、短视频任务的无人机具身理解!AirVista-II:面向动态场景语义理解的无人机具身智能体系统
作者:Fei Lin 1 ^{1} 1, Yonglin Tian 2 ^{2} 2, Tengchao Zhang 1 ^{1} 1, Jun Huang 1 ^{1} 1, Sangtian Guan 1 ^{1} 1, and Fei-Yue Wang 2 , 1 ^{2,1} 2,1单位: 1 ^{1} 1澳门科技大学创新工程学院工程科学系, 2 ^{2} 2中科院自动化研究所…...
深入探索 OpenCV:从实时视频流到图像处理的实战指南
引言 在当今数字化时代,计算机视觉技术正逐渐成为推动科技发展的核心力量之一。从自动驾驶汽车到智能家居设备,从医疗影像诊断到工业自动化,计算机视觉的应用无处不在。而 OpenCV(Open Source Computer Vision Library࿰…...
Linux线程控制
POSIX线程库 与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”打头的要使用这些函数库,要通过引入头文 <pthread.h>链接这些线程函数库时要使用编译器命令的“-lpthread”选项 创建线程 功能:创建⼀个新…...
软件设计师考试《综合知识》设计模式之——工厂模式与抽象工厂模式考点分析
软件设计师考试《综合知识》工厂模式与抽象工厂模式考点分析 1. 分值占比与考察趋势(75分制) 年份题量分值占总分比例核心考点2023111.33%抽象工厂模式适用场景2022222.67%工厂方法 vs 抽象工厂区别2021111.33%工厂方法模式结构2020111.33%简单工厂模式…...
携程旅行 酒店详情 token1004 分析 phantom-token
声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 部分python代码 这个网站有一个坑&am…...
QT——概述
<1>, Qt概述 Qt 是⼀个 跨平台的 C 图形⽤⼾界⾯应⽤程序框架 Qt ⽀持多种开发⼯具,其中⽐较常⽤的开发⼯具有:Qt Creator、Visual Studio、Eclipse. 一,Qt Creator 集成开发环境(IDE) Qt Creator 是⼀个轻量…...
uniapp-vue3项目中引入高德地图的天气展示
前言: uniapp-vue3项目中引入高德地图的天气展示 效果: 操作步骤: 1、页面上用定义我们的 当前天气信息:<view></view> 2、引入我们的map文件 <script setup>import amapFile from ../../libs/amap-wx.js …...
最新版VSCode通过SSH远程连接Ubuntu 16.04等旧版Linux的方法
根据官方文档Remote Development FAQ - Can I run VS Code Server on older Linux distributions?,自Visual Studio Code 1.99起,VSCode Remote - SSH Server由于运行库依赖更新,会无法连接到旧版Linux发行版上。但是好在官方在文档中还给了…...
Unity碰撞检测:射线与胶囊体投射/Layer(层)、LayerMask(遮罩层)
一、Physics碰撞检测 1.Physics.Raycast射线投射 Physics.Raycast 是 Unity 中用于执行射线检测(Raycasting)的方法。它允许你从一个点沿特定方向发射一条无形的“射线”,并检查这条射线是否与场景中的任何碰撞体相交。这个功能非常有用&am…...
浪潮云边协同:赋能云计算变革的强力引擎
在数字化浪潮以排山倒海之势席卷全球的当下,第五届数字中国建设峰会在福州盛大开幕。这场以“创新驱动新变革,数字引领新格局”为主题的行业盛会,宛如一座汇聚智慧与力量的灯塔,吸引了国内外众多行业精英齐聚一堂,共同…...
“傅里叶变换算法”来检测纸箱变形的简单示例
为了创建一个具有科技质感且能动态展示结果的纸箱变形检测傅里叶变换网页,下面将分别更新 HTML、CSS 和 JavaScript 文件。以下是更新后的代码: 1. HTML 文件 (index.html) <!DOCTYPE html> <html lang"zh-CN"> <head><…...
【SPIN】用Promela验证顺序程序:从断言到SPIN实战(SPIN学习系列--2)
你写了一段自认为“天衣无缝”的程序,但如何确保它真的没有bug?靠手动测试?可能漏掉边界情况;靠直觉?更不靠谱!这时候,Promela SPIN组合就像程序的“显微镜”——用形式化验证技术,…...
如何卸载并重新安装 Mozilla Firefox 浏览器
如果你在 Windows 上遇到现有的 Mozilla FireFox 安装问题,以下是重新安装 FireFox 的步骤。这可以帮助用户解决由于某些扩展或设置问题,或者不小心下载了令人讨厌的广告软件而导致的问题。虽然现在使用 Firefox 浏览器的用户在渐渐沦为小众群体,但是 Firefox 浏览器依然是最…...
Linux 后台运行的方法
Linux 后台运行的两种方法:screen 和 nohup 使用指南 如有错误,敬请指正 方法一:使用 screen 管理后台任务(推荐) 🔹 安装(如未安装) sudo apt install screen # Ubuntu/Debian …...
《无限暖暖》画质测评
《无限暖暖》作为一款采用虚幻5引擎打造的多平台畅玩、高自由度换装探索类RPG游戏,凭借其精美的画面、沉浸式操作和暖暖美丽坚毅的人设吸引了大量玩家。 在其中玩家可以通过做各样任务收集美好并感受到丰富的人生体验,暖暖所在的世界里有超多的NPC可以互…...
websocket简介与基本使用
websocket是什么 WebSocket 是一种基于 TCP 的全双工通信协议,允许客户端和服务器之间建立持久连接,实现实时、双向的数据传输。它是 HTTP 协议的补充,专为低延迟、高效率的实时通信设计。 核心特点 特性说明全双工通信客户端和服务器可以同时…...
面试题:请解释Java中的垃圾回收机制(Garbage Collection, GC),并讨论不同的垃圾回收算法及其优缺点
Java垃圾回收机制(GC) Java的垃圾回收机制负责自动管理内存,回收不再使用的对象以释放内存空间。GC通过以下步骤实现: 标记(Marking) :识别哪些对象是可达的,哪些是不可达的。清除…...
解决 Ubuntu 22.04 安装后启动卡死问题
最近在一台 PC 上安装了 Ubuntu 22.04 系统,但发现系统启动时出现问题:屏幕上出现一个旋转的小圈,旋转片刻后停止,系统无法正常进入桌面环境。经过一番排查,我找到了一种有效的解决方法,通过进入恢复模式并…...
线程的两种实现方式
线程的两种实现方式——内核支持线程(kernal Supported Thread, KST), 用户级线程(User Level Thread, ULT) 1. 内核支持线程 顾名思义,内核支持线程即为在内核支持下的那些线程,它们的创建&am…...
Python Bug 修复案例分析:asyncio 事件循环异常引发的程序崩溃 两种修复方法
在 Python 异步编程的工作中,asyncio库为我们提供了高效处理并发任务的强大工具。然而,asyncio在使用过程中也可能因为一些细节处理不当而引发 Bug。下面,我们就来深入分析一个因asyncio事件循环异常导致程序崩溃的典型案例。兴趣的友友可以借…...
TCP(传输控制协议)建立连接的过程
TCP(传输控制协议)建立连接的过程称为 三次握手(Three-Way Handshake)。这是为了确保通信双方能够可靠地建立连接,并同步初始序列号。以下是详细步骤: 三次握手过程(通俗比喻:打电话…...
(十九)Java集合框架深度解析:从基础到高级应用
一、集合框架概述 1.1 什么是集合框架 Java集合框架(Java Collections Framework, JCF)是Java语言中用于表示和操作集合的一套标准化体系结构。它提供了一组接口、实现类和算法,用于存储和操作对象组,解决了数组在存储对象时的诸多限制。 集合框架的主…...
数据结构与算法-线性表-单链表(Linked List)
1 线性表 1.2 单链表(Linked List) 顺序表在内存中是连续的进行存储,可以随机获取某个元素,但是在插入和删除元素的时候就非常不方便,需要移动很多相关的元素,链表就可以解决这个问题。 链表就是每个节点…...
Vue3学习(组合式API——生命周期函数基础)
目录 一、Vue3组合式API中的生命周期函数。 (1)各阶段生命周期涉及函数简单介绍。 <1>创建挂载阶段的生命周期函数。 <2>更新阶段的生命周期函数。 <3>卸载阶段的生命周期函数。 <4>错误处理的生命周期函数。 (2&…...
MySQL索引优化面试高频考点解析(附实战场景)
文章目录 当索引失效成为面试官的"送命题"(必看!)高频考点一:索引失效的七大死亡陷阱1. 隐式类型转换(血泪案例!)2. 函数操作毁所有 高频考点二:最左前缀原则的魔鬼细节组…...
三目云台20倍变焦智能监控技术
“三目云台20倍转动”通常指的是一种具备三目变焦功能和20倍光学变焦能力的云台摄像机。以下是对这一概念的详细解释: 一、三目变焦功能 三目云台摄像机通常配备“长、短、广”三组定焦镜头,每组镜头都有其独特的作用: 长焦镜头 ÿ…...
SQL注入---05--跨站注入
1 权限说明 select * from mysql.user; 这里的Y表示我前面的命令权限为root,n表示不支持root权限 导致结果: 如果为root的话,我就可操作这些命令并且可以进行跨数据库攻击,但是如果不是高权限root就无法执行这些操作 2 root权限…...
AAC 协议
1. ADTS(Audio Data Transport Stream)帧结构 在ADTS(Audio Data Transport Stream)帧结构中,“上面扩展28 bit”指的是ADTS固定头(adts_fixed_header())和ADTS可变头(adts_variable_header())各自包含的28位信息。 1.1 ADTS固定头(adts_fixed_header()) AAC 帧…...
HGDB企业版迁移到HGDB安全版
文章目录 环境文档用途详细信息 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5.8,6.0 文档用途 HGDB企业版数据库通过命令备份恢复,迁移到HGDB安全版中。 详细信息 1、环境介绍 1 IP 操作系统 cpux.x.65.10 …...
智慧化系统安全分析报告
智慧化系统的安全背景与现状 一、政策法规背景 (一)全球主要国家/地区政策对比 地区政策名称核心内容实施时间特点中国《生成式人工智能服务管理暂行办法》明确服务提供者责任,强调数据合法、隐私保护,禁止生成违法内容2023年8…...
概率相关问题
问题汇总 1. 贝叶斯定理(贝叶斯公式和全概率公式)2. 概率题2.1 随机发生器的概率为1/2 1. 贝叶斯定理(贝叶斯公式和全概率公式) 定义:在信息和条件有限的情况下,基于过去的数据,通过动态调整的…...
使用 GitDiagram 快速将 GitHub 仓库转换为交互式图表
前言 当面对 GitHub 上文件目录错综复杂的新项目,且你急需快速了解其系统设计或架构流程时,你可能会感到束手无策。今天大姚给大家分享一个开源利器 GitDiagram,它可以轻松将任何复杂的 GitHub 仓库转化为直观、交互式的图表,这对…...
AWS CloudHSM:金融级密钥安全管理实战,如何通过FIPS 140-2认证守护数据生命线?
数据泄露平均成本430万美元,加密漏洞成头号杀手!当《数据安全法》撞上金融科技合规,开发者如何用硬件安全模块(HSM)构建不可破解的密钥堡垒?本文揭秘AWS CloudHSM如何成为支付系统、电子病历、区块链的“数…...
自定义分区器-基础
什么是分区 在 Spark 里,弹性分布式数据集(RDD)是核心的数据抽象,它是不可变的、可分区的、里面的元素并行计算的集合。 在 Spark 中,分区是指将数据集按照一定的规则划分成多个较小的子集,每个子集可以独立…...
<C++> MFC自动关闭对话框(MessageBoxTimeout)
MFC自动关闭对话框(MessageBoxTimeout) 记录一下今天在界面开发中的解决方案。自动关闭对话框有两种方案: 1.使用定时器实现延迟关闭(DeepSeek方案) 提示框显示几秒后自动关闭,可以使用 SetTimer KillT…...
一个基于 Spring Boot 的实现,用于代理百度 AI 的 OCR 接口
一个基于 Spring Boot 的实现,用于代理百度 AI 的 OCR 接口 BaiduAIController.javaBaiduAIConfig.java在 application.yml 或 application.properties 中添加配置:application.yml同时,需要在Spring Boot应用中配置RestTemplate:…...
Python60日基础学习打卡D26
算圆形面积 错误代码 import mathdef calculate_circle_area(r):try:S math.pi * r**2except r<0:print("半径不能为负数")return S 正确代码 import mathdef calculate_circle_area(radius):try:if radius < 0:return 0return math.pi * radius…...