先看代码
/**
* 根据id查询学生信息
*/
@GetMapping("/getOne/{id}")
public Student getOne(@PathVariable("id") int id) {
return studentRepository.getOne(id);
}
}
再看解释
@PathVariable
是 Spring Framework 中的一个注解,它用于从请求的 URL 中提取参数值并传递给处理程序方法(Controller 方法)的参数。在上面的代码示例中,@PathVariable("id") int id
表示将 URL 中的 id
参数提取出来,并将其赋值给方法参数 id
。
让我们来具体解释一下:
-
@GetMapping("/getOne/{id}")
:
这是一个 Spring MVC 的控制器方法(Controller Method)的映射注解。@GetMapping
表示这是一个处理 GET 请求的方法,其中"/getOne/{id}"
是请求的路径。在这个路径中,{id}
是一个占位符,表示这个位置可以匹配任意数字,并且将这个数字作为参数传递给方法。 -
@PathVariable("id") int id
:
这是一个方法参数上的注解,用于指示 Spring 将 URL 中的id
参数值提取出来,并赋值给方法参数id
。@PathVariable("id")
表示将占位符{id}
中的值提取出来,并传递给后面的参数int id
。
例如,如果发送的请求是 /getOne/123
,那么 Spring 就会提取 URL 中的 123
并将它作为参数传递给 getOne
方法的 id
参数。这样,id
就会被设置为 123
,并且在方法内部可以使用这个值来执行相应的操作,比如查询数据库中 ID 为 123 的学生信息。
总结:@PathVariable
注解的作用是将 URL 中的路径参数提取出来并传递给方法的参数,方便在控制器方法中使用这些参数进行业务逻辑的处理。