Spring Boot 中的 @PathVariable:获取 RESTful 路径参数

简介: 在Spring Boot中,`@PathVariable`用于提取RESTful API URL中的动态参数。支持单个或多个路径变量,参数名一致时可省略value属性,不一致时需显式绑定,是构建清晰、语义化接口的关键注解之一。

在 RESTful 风格的 API 设计中,参数常直接嵌入 URL 路径中,例如:

/user/123/order/456/status

Spring Boot 通过 @PathVariable 注解,轻松提取这些路径中的动态值。


基本用法

路径变量名与方法参数名一致时,可直接使用:

@GetMapping("/user/{id}")
public String getUser(@PathVariable Integer id) {
    System.out.println("ID: " + id);
    return "success";
}

访问 /user/100id = 100


参数名不一致?用 value 指定绑定关系

若路径占位符名称与方法参数不同,需显式指定:

@GetMapping("/user/{userId}")
public String getUser(@PathVariable("userId") Integer id) {
    System.out.println("ID: " + id);
    return "success";
}

支持多个路径参数

URL 中可包含多个占位符,按名称一一对应:

@GetMapping("/user/{id}/{name}")
public String getUser(
    @PathVariable("id") Integer userId,
    @PathVariable String name
) {
    System.out.println("ID: " + userId + ", Name: " + name);
    return "success";
}

访问 /user/2/zhangsan → 输出:

ID: 2, Name: zhangsan

💡 注意:只要参数数量和占位符匹配,位置可以任意,如 /api/{version}/user/{id}


小结

  • @PathVariable 用于提取 URL 路径中的动态参数;
  • 参数名一致时可省略 value
  • 名称不一致时,用 @PathVariable("xxx") 显式绑定;
  • 支持多个参数,灵活适配复杂 RESTful 路由。

这是构建语义化、清晰 API 的关键注解之一。


相关文章
|
5月前
|
Java Spring
Spring Boot 中的 @RequestParam:获取查询参数与表单数据
`@RequestParam` 用于提取 HTTP 请求中的查询参数或表单数据,支持设置参数名、是否必填及默认值。适用于 `?key=value` 形式或 POST 表单,字段多时推荐封装为实体类自动绑定,与 `@PathVariable` 按路径取值不同,用途明确,是处理 Web 请求的常用方式。
|
Web App开发 编解码 监控
【开源视频联动物联网平台】推流,拉流,转发,转码?
【开源视频联动物联网平台】推流,拉流,转发,转码?
1629 2
|
5月前
|
JSON Java 数据格式
Spring Boot中的全局异常处理
本文介绍了Spring Boot项目中如何实现全局异常处理。通过@ControllerAdvice和@ExceptionHandler统一捕获系统异常与自定义业务异常,结合统一JSON返回结构,避免代码耦合,提升可维护性。同时利用枚举管理异常码,实现异常信息的集中管理和友好提示,适用于前后端分离及微服务架构,保障接口返回一致性,降低维护成本。
|
10月前
|
XML 人工智能 监控
SpringBoot实战:七种统计方法耗时的实现方式
在Spring Boot开发中,统计方法执行时间是性能优化的重要手段。本文介绍了七种实现方法耗时统计的技巧,包括手动使用StopWatch、AOP全局监控、自定义注解+切面、拦截器、Filter、Actuator+Micrometer集成以及事件监听等方式。每种方法适用于不同场景,开发者可根据需求选择合适的方案,从而更高效地定位性能瓶颈并提升系统响应速度。
1262 5
|
5月前
|
JSON 前端开发 Java
Spring Boot 返回 JSON 数据及数据封装
本课讲解Spring Boot中JSON处理:通过@RestController返回JSON,利用内置Jackson实现对象、List、Map自动序列化,并自定义配置优雅处理null值,提升前后端交互体验。
|
5月前
|
JSON 前端开发 安全
用自定义注解 + 拦截器实现登录鉴权
通过自定义注解 `@Login` 结合 Spring 拦截器,实现声明式登录校验。无需重复编码,自动拦截未登录请求,提升代码可维护性与安全性,适用于前后端分离架构的权限控制实践。
|
5月前
|
NoSQL Shell Linux
Windows 系统下的 MongoDB 单机部署
本文详细介绍 MongoDB 在 Windows 和 Linux 系统中的单机部署方法,涵盖下载安装、目录配置、服务启停、Shell 与 Compass 连接等步骤,助你快速搭建开发与生产环境。
|
5月前
|
SQL 安全 Java
了解 SQL 注入:原理、危害与防御
SQL注入是Web安全头号威胁,攻击者通过恶意SQL代码窃取、篡改或删除数据。本文详解其原理、危害及防御方案,强调预编译、输入校验、最小权限等核心防护措施,助你筑牢数据库安全防线。
|
5月前
|
JSON 前端开发 Java
Spring Boot 封装统一返回的数据结构
本课讲解如何设计统一的JSON响应结构,通过泛型类`JsonResult<T>`封装返回数据,规范包含code、msg、data的标准格式,提升前后端协作效率与API可维护性。
|
前端开发 Java 微服务
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@PathVariable
`@PathVariable` 是 Spring Boot 中用于从 URL 中提取参数的注解,支持 RESTful 风格接口开发。例如,通过 `@GetMapping("/user/{id}")` 可以将 URL 中的 `{id}` 参数自动映射到方法参数中。若参数名不一致,可通过 `@PathVariable("自定义名")` 指定绑定关系。此外,还支持多参数占位符,如 `/user/{id}/{name}`,分别映射到方法中的多个参数。运行项目后,访问指定 URL 即可验证参数是否正确接收。
867 0