在 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/100 → id = 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 的关键注解之一。