SpringBoot接口参数接收指南:从URL到请求体,4种方式一次掌握的重点在于把前置条件、操作顺序和容易误判的地方分清楚。
当前后端分离已成为主流开发模式,前端如何向后端传递参数,是每个 Spring Boot 开发者必须掌握的技能。

下文会带你快速掌握 Spring 中最常见的四种参数接收方式,并通过简单示例一一拆解它们的使用场景与差异。
在正式介绍注解之前,我们先快速了解一下 HTTP 请求的数据结构。
一个典型的 HTTP 请求由三部分组成:
四种注解的本质就是从这些不同部分中提取参数。
Spring Boot 接收前端数据的常见方式包括:
@PathVariable:用于接收 URL 路径中的参数;@RequestParam:用于接收查询参数或表单数据;@RequestHeader:用于接收请求头中的信息;@RequestBody:用于接收 JSON 或 XML 格式的请求体数据。后文将依次介绍这四种方式的使用方法及适用场景。
用于接收 URL 路径中的变量,例如 /user/{id}。常用于 RESTful 风格接口。
示例:
@GetMapping("/user/{id}")public String getUser(@PathVariable Long id) { return "User ID: " + id;}用于接收请求头中的参数,常用于读取 Token、User-Agent 等。
示例:
@GetMapping("/device")public String getDevice(@RequestHeader("User-Agent") String userAgent) { return "User-Agent: " + userAgent;}用于接收 URL 中的查询参数或表单提交的数据,常见于 GET 或表单 POST 请求。
示例:
@GetMapping("/search")public String search(@RequestParam String keyword) { return "Searching: " + keyword;}对于 GET 请求,查询参数拼接在 URL 路径后;对于 Content-Type 为 application/x-www-form-urlencoded 的 POST 请求,表单数据以键值对形式编码放在请求体中。
使用 @RequestParam 注解可以方便地接收这两类参数。
用于接收请求体中的 JSON 或 XML 数据,通常用于 POST/PUT 请求配合实体类使用。
示例:
@PostMapping("/login")public String login(@RequestBody User user) { return "Welcome " + user.getUsername();}GET 请求没有请求体,不能使用 @RequestBody 接收参数。对于 Content-Type 为 application/json 的 POST/PUT 请求,@RequestBody 可用于接收请求体中的 JSON 数据。
一个方法中只能有一个 @RequestBody 注解,通常使用 Java Bean、DTO 或 Map 来接收整体结构化数据。
本文通过示例梳理了 Spring Boot 接收前端数据的四种常用注解。选用哪种方式,取决于你的业务场景和前端的请求结构:
@PathVariable@RequestParam@RequestHeader@RequestBody掌握这些基础注解,能够帮助你更高效地开发 Web 接口,构建清晰、规范的 API。