1. @PathParam
与 @PathVariable
的区别
@PathParam
和 @PathVariable
都是用于从 URL 路径中提取参数的注解,但它们属于不同的框架,并有不同的使用方式。以下是两者的详细区别:
2. @PathParam
-
所属框架:
JAX-RS
(Java API for RESTful Web Services),通常在 Java EE 或者 Jersey 框架中使用。 -
作用: 从 URL 路径中提取参数。
-
使用场景: RESTful Web 服务,通常与
@Path
注解配合使用。代码示例:
@GET @Path("/users/{id}") public Response getUserById(@PathParam("id") String id) { // 获取路径中的 id 参数 return Response.ok("User ID: " + id).build(); }
- URL 请求:
/users/123
- 提取的参数:
id = 123
- URL 请求:
3. @PathVariable
-
所属框架:
Spring MVC
,用于 Spring Web 应用中。 -
作用: 同样是从 URL 路径中提取参数。
-
使用场景: Spring MVC 框架中的 RESTful API,通常与
@GetMapping
或@RequestMapping
配合使用。代码示例:
@GetMapping("/users/{id}") public String getUserById(@PathVariable("id") String id) { // 获取路径中的 id 参数 return "User ID: " + id; }
- URL 请求:
/users/123
- 提取的参数:
id = 123
- URL 请求:
4. 主要区别
特性 | @PathParam | @PathVariable |
---|---|---|
所属框架 | JAX-RS (Jersey, RestEasy 等) | Spring MVC |
作用 | 提取 URL 路径参数 | 提取 URL 路径参数 |
使用注解组合 | 通常与 @Path 一起使用 | 通常与 @RequestMapping , @GetMapping 等一起使用 |