面试题:Spring 中的 @PathVariable 注解的作用是什么?

@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
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容