@PathVariable
是 Spring 框架中的一个注解,用于从 URI 模板中提取变量值并将其绑定到方法参数上。它通常用于 RESTful Web 服务中,以便从 URL 中获取动态部分。
作用
- 提取 URI 中的变量:
@PathVariable
可以从 URL 中提取占位符的值,并将其传递给控制器方法。 - 绑定到方法参数:提取的值可以直接绑定到控制器方法的参数上,方便后续处理。
示例
假设有一个 RESTful API,用于根据用户 ID 获取用户信息:
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/{id}")
public User getUser(@PathVariable("id") Long userId) {
// 根据 userId 查询用户信息
return userService.getUserById(userId);
}
}
- URL 示例:
/users/123
- 解释:
{id}
是 URI 模板中的占位符。@PathVariable("id")
会将 URL 中的123
提取出来,并赋值给userId
参数。
其他用法
- 多个路径变量:可以在一个方法中使用多个
@PathVariable
注解。
@GetMapping("/{userId}/orders/{orderId}")
public Order getOrder(@PathVariable Long userId, @PathVariable Long orderId) {
// 根据 userId 和 orderId 查询订单信息
return orderService.getOrder(userId, orderId);
}
- 省略变量名:如果方法参数名与 URI 模板中的占位符名称一致,可以省略
@PathVariable
中的变量名。
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
// 直接使用 id
return userService.getUserById(id);
}
总结
@PathVariable
注解主要用于从 URL 中提取动态部分,并将其绑定到控制器方法的参数上,简化了 RESTful API 的开发。
THE END
暂无评论内容