@RestController注解
:将一个类标识为一个RESTful风格的控制器,用于处理HTTP请求和响应。
@RequestMapping注解
:用于将一个HTTP请求映射到控制器的处理方法上,可以用于类级别和方法级别。
@PostMapping注解
:用于将HTTP POST请求映射到控制器的处理方法上。
@GetMapping注解
:用于将HTTP GET请求映射到控制器的处理方法上。
@RequestBody注解
:用于指示请求的参数将作为请求的主体部分,并将其反序列化为Java对象。
@RequestParam注解
:用于将HTTP请求参数绑定到方法的参数上。
@PathVariable注解
:用于将URI路径中的变量绑定到方法的参数上。
这些注解的使用情景、使用方法和关系如下:
- @RestController注解通常用于标识一个控制器类,用于处理HTTP请求和响应。例如:
@RestController
@RequestMapping("/api")
public class UserController { ... }
- @RequestMapping注解用于将一个HTTP请求映射到控制器的处理方法上,可以用于类级别和方法级别。例如:
@RequestMapping(value = "/users/{id}", method = RequestMethod.GET)
public User getUserById(@PathVariable int id) { ... }
- @PostMapping注解用于将HTTP POST请求映射到控制器的处理方法上。例如:
@PostMapping("/users")
public void createUser(@RequestBody User user) { ... }
- @GetMapping注解用于将HTTP GET请求映射到控制器的处理方法上。例如:
@GetMapping("/users/{id}")
public User getUserById(@PathVariable int id) { ... }
- @RequestBody注解用于指示请求的参数将作为请求的主体部分,并将其反序列化为Java对象。例如:
@PostMapping("/users")
public void createUser(@RequestBody User user) { ... }
- @RequestParam注解用于将HTTP请求参数绑定到方法的参数上。例如:
@GetMapping("/users")
public List<User> getUsersByRole(@RequestParam("role") String role) { ... }
- @PathVariable注解用于将URI路径中的变量绑定到方法的参数上。例如:
@GetMapping("/users/{id}")
public User getUserById(@PathVariable int id) { ... }
这些注解之间的关系是:
- @RequestMapping注解用于映射HTTP请求到控制器的处理方法,而@PostMapping和@GetMapping注解是@RequestMapping注解的特定方法级别的缩写,分别用于映射HTTP
POST请求和HTTP GET请求。 - @RequestBody注解和@RequestParam注解是用于绑定请求参数的注解,可以在控制器的处理方法参数上使用。
- @PathVariable注解用于将URI路径中的变量绑定到方法参数上。