SpringBoot常用请求方式及请求参数传递的方式

 更新时间:2025年08月29日 10:58:11   作者:Liuzhengyue_  
本文给大家介绍SpringBoot常用请求方式及请求参数传递的方式,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

SpringBoot中常用的请求方式

@RequestMapping:不限制请求方式

@GetMapping:获取数据,参数拼接在url的?之后,参数名=参数值多个参数之间用&符号间隔,可缓存

@PostMapping:提交数据,参数不可以直接看见(开发者工具/抓包)

@PutMapping:修改数据

@DeleteMapping:删除数据

关于请求参数的传递

方法一:@PathVariable —— 获取“路径参数”

  • 适合场景:URL 路径中有变量,比如 /user/1001
  • 例子
@GetMapping("/user/{id}")
public String getUserById(@PathVariable Long id) {
    // id 就是路径里的 1001
    return "用户ID:" + id;
}
  • 路径转化说明
    • 客户端请求:GET /user/1001
    • 方法参数:@PathVariable Long id 自动获得 1001

方法二:@RequestParam —— 获取“查询参数”或“表单参数”

  • 适合场景:URL 问号后的参数,比如 /user?name=Tom
  • 例子
@GetMapping("/user")
public String getUserByName(@RequestParam String name) {
    // name 就是 URL 里的 Tom
    return "用户名:" + name;
}
  • 路径转化说明
    • 客户端请求:GET /user?name=Tom
    • 方法参数:@RequestParam String name 自动获得 Tom

方法三:@RequestBody —— 获取“请求体参数”(多用于 JSON)

  • 适合场景:客户端 POST JSON 数据,如注册用户
  • 例子
@PostMapping("/user/add")
public String addUser(@RequestBody User user) {
    // user 对象自动映射 JSON 里的数据
    return "新增用户:" + user.getName();
}
  • 路径转化说明
    • 客户端请求:POST /user/add,请求体为 {"name":"Tom","age":20}
    • 方法参数:@RequestBody User user 自动映射

方法四:Spring Boot 的“隐式参数绑定”机制 

核心知识

Spring MVC(Spring Boot 2/3 都适用)有一个自动参数绑定机制,叫做 隐式绑定(Implicit Binding)

  • 如果你的 Controller 方法参数是简单类型(如 Stringintlong),而没有添加注解,Spring 会自动尝试从请求的参数(QueryString、Form表单)中取同名值,并赋值给方法参数。

例子说明

前端请求:

  • POST /user/register
  • Content-Type: application/x-www-form-urlencoded
  • 请求体:username=Tom&password=123456

Controller 方法(如你图片里的):

@PostMapping("/register")
public Result register(String username, String password) {
    // Spring 会自动把请求体中的 username、password 赋值过来
}

详细步骤:隐式绑定是怎么工作的?

步骤说明
1前端页面表单用 POST 提交,参数名和方法参数名一致
2Spring 根据 Content-Type 检查是表单提交
3没有 @RequestBody/@ModelAttribute/@RequestParam 注解时,
Spring 会自动把请求参数(key)和方法参数名匹配,赋值进来
4如果参数名不一致,则赋值失败,值为 null

总结:只要表单的参数名和方法参数名一致,就能自动绑定。

路径转化详解 

举例说明:

  • URL: http://localhost:8080/user/1001?name=Tom
    • 路径参数:/user/1001 → @PathVariable Long id
    • 查询参数:?name=Tom → @RequestParam String name
  • JSON 请求体(POST):
    • URL: /user/add
    • body: {"name":"Tom","age":20} → @RequestBody User user

常见场景和最佳实践 

场景推荐方式说明
简单表单(2-3个参数)可以省略注解,直接用同名参数省事,代码少
参数较多推荐用 @ModelAttribute 封装对象代码更整洁,可扩展性好
JSON 请求体必须用 @RequestBody否则接收不到数据
参数名不一致必须用 @RequestParam("xxx")明确映射关系

到此这篇关于SpringBoot请求方式及请求参数传递的方式的文章就介绍到这了,更多相关SpringBoot请求传递内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java安全停止线程的方法详解

    java安全停止线程的方法详解

    这篇文章主要介绍了java安全停止线程的方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java实现的简单图片上传功能示例

    Java实现的简单图片上传功能示例

    这篇文章主要介绍了Java实现的简单图片上传功能,结合实例形式分析了java图片传输相关的检验、传输、接收等相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • SpringBoot如何接收数组参数的方法

    SpringBoot如何接收数组参数的方法

    这篇文章主要介绍了SpringBoot如何接收数组参数的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Java枚举类实现Key-Value映射的多种实现方式

    Java枚举类实现Key-Value映射的多种实现方式

    在 Java 开发中,枚举(Enum)是一种特殊的类,本文将详细介绍 Java 枚举类实现 key-value 映射的多种方式,有需要的小伙伴可以根据需要进行选择
    2025-04-04
  • Java的作业调度类库Quartz基本使用指南

    Java的作业调度类库Quartz基本使用指南

    这篇文章主要介绍了Java的作业调度类库Quartz基本使用指南,Quartz能够让类按照指定的计划顺序执行,需要的朋友可以参考下
    2016-03-03
  • Spring如何实现输出带动态标签的日志

    Spring如何实现输出带动态标签的日志

    文章介绍了如何通过动态标签日志实现,解决了部分业务代码在多个模块中调用时日志无法直观看出来源的问题,主要通过ThreadLocal存储业务标签,并在日志输出时插入该标签,实现日志的动态标签功能,感兴趣的朋友一起看看吧
    2024-12-12
  • mybatis模糊查询like语句该如何写

    mybatis模糊查询like语句该如何写

    MyBatis模糊查询通常使用LIKE关键字,结合concat函数拼接通配符%实现,在MyBatis配置文件中,通过#{keyword}传递参数,生成带有通配符的查询语句,MyBatis-Plus中,通过LambdaQueryWrapper类和like方法构建模糊查询条件,简化查询操作
    2024-09-09
  • Java数组传递及可变参数操作实例详解

    Java数组传递及可变参数操作实例详解

    这篇文章主要介绍了Java数组传递及可变参数操作,结合实例形式详细分析了java数组参数传递与可变参数相关使用技巧,需要的朋友可以参考下
    2019-09-09
  • Java实现的计算最大下标距离算法示例

    Java实现的计算最大下标距离算法示例

    这篇文章主要介绍了Java实现的计算最大下标距离算法,涉及java针对数组的遍历、运算等相关操作技巧,需要的朋友可以参考下
    2018-02-02
  • Spring Security 自定义资源服务器实践过程

    Spring Security 自定义资源服务器实践过程

    这篇文章主要介绍了Spring Security 自定义资源服务器实践,我们通过自己搭建的授权服务器和资源服务器,完整体验了OAuth2流程,需要的朋友可以参考下
    2022-08-08

最新评论