@PathVariable和@RequestParam是在Spring框架中常用的注解,用于从URL中获取参数值。它们之间的主要区别在于参数的来源和用法:
@PathVariable
- 来源:
@PathVariable用于从URL模板中提取值,通常用于获取RESTful风格的URL中的参数。 - 例子: 在
/users/{id}这样的路径中,id就可以被@PathVariable注解捕获。 - 使用: 在方法参数中使用
@PathVariable注解来声明路径变量。 - 示例:
@GetMapping("/users/{id}")
public User getUserById(@PathVariable Long id) {
// 根据id获取用户信息
}
@RequestParam
- 来源:
@RequestParam用于从请求的查询参数中获取值,即从URL中?key=value这样的查询字符串中提取参数值。 - 使用: 可以在方法参数中使用
@RequestParam注解来获得请求参数。 - 示例:
@GetMapping("/users")
public List<User> getUsersByRole(@RequestParam(value="role",required = false) String role) {
// 根据角色获取用户列表
}
区别总结:
- 来源区别:
@PathVariable从URL路径中获取参数,@RequestParam从查询参数中获取; - 用途区别:
@PathVariable适用于RESTful风格的URL,用于提取路径中的变量;@RequestParam用于从查询参数中提取参数;