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 Lambda表达式与匿名内部类的联系和区别实例分析

    Java Lambda表达式与匿名内部类的联系和区别实例分析

    这篇文章主要介绍了Java Lambda表达式与匿名内部类的联系和区别,结合实例形式分析了Java Lambda表达式与匿名内部类功能、用法、区别及操作注意事项,需要的朋友可以参考下
    2019-10-10
  • spring boot启动加载数据原理分析

    spring boot启动加载数据原理分析

    实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求。这时spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现。下面给大家详细介绍下,需要的的朋友参考下吧
    2017-04-04
  • 浅谈Java设计模式之原型模式知识总结

    浅谈Java设计模式之原型模式知识总结

    Java原型模式主要用于创建重复的对象,同时又能保证性能,这篇文章就带大家仔细了解一下原型模式的知识,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • 带你了解Java数据结构和算法之二叉树

    带你了解Java数据结构和算法之二叉树

    这篇文章主要为大家介绍了Java数据结构和算法之二叉树,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • MyEclipse打开文件跳转到notepad打开问题及解决方案

    MyEclipse打开文件跳转到notepad打开问题及解决方案

    windows系统打开README.md文件,每次都需要右键选择notepad打开,感觉很麻烦,然后就把README.md文件打开方式默认选择了notepad,这样每次双击就能打开,感觉很方便,这篇文章主要介绍了MyEclipse打开文件跳转到notepad打开问题,需要的朋友可以参考下
    2024-03-03
  • java web实现自动登录

    java web实现自动登录

    这篇文章主要为大家详细介绍了java web实现自动登录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • JAVA常用分布式锁Redisson详解

    JAVA常用分布式锁Redisson详解

    Redisson分布式锁通过Lua脚本的原子性、可重入设计、Watchdog 自动续期和Pub/Sub 通知机制,实现了高效的分布式锁管理,本文给大家介绍JAVA常用分布式锁Redisson详解,感兴趣的朋友一起看看吧
    2025-05-05
  • Java中常见的陷阱题及答案

    Java中常见的陷阱题及答案

    在电脑里找到一份当时学习JAVA时的笔记,看到一些现在已经遗忘的细节。稍微整理了几个,发出来与大家分享。这篇文章主要介绍了Java中常见的陷阱题及答案,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • 利用Java生成带有文字的二维码

    利用Java生成带有文字的二维码

    二维码在我们现在的生活中可谓是随处可见,这篇文章主要是介绍如何利用Java生成带有文字的二维码,对大家学习Java具有一定的参考借鉴价值。有需要的朋友们下面来一起看看吧。
    2016-09-09
  • 使用feign配置网络ip代理

    使用feign配置网络ip代理

    这篇文章主要介绍了使用feign配置网络ip代理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论