@RequestMapping
是Spring MVC中的注解,用于将HTTP请求映射到Java方法上。它可以应用在类级别或方法级别,并具有许多可配置的属性来定义请求的映射规则。
- 基本用法:
- 在类级别上使用
@RequestMapping
注解时,可以为该类中的所有处理方法指定共享的路径前缀。@RestController @RequestMapping("/api") public class MyController { // ... }
- 在方法级别上使用
@RequestMapping
注解时,可以指定具体的请求路径和HTTP方法。@GetMapping("/users") public List<User> getUsers() { // ... }
- 请求路径匹配:
value
或path
:指定请求的URL路径,支持Ant风格的通配符路径模式。@RequestMapping(value = "/users", method = RequestMethod.GET) public List<User> getUsers() { // ... }
method
:指定处理请求的HTTP方法。@RequestMapping(value = "/users", method = RequestMethod.POST) public void createUser(@RequestBody User user) { // ... }
params
:指定请求参数的条件限制。@RequestMapping(value = "/users", params = "role=admin") public List<User> getAdminUsers() { // ... }
headers
:指定请求头的条件限制。@RequestMapping(value = "/users", headers = "Authorization") public void getUserWithAuthorization() { // ... }
- 映射到不同的HTTP方法:
@GetMapping
:GET请求@PostMapping
:POST请求@PutMapping
:PUT请求@DeleteMapping
:DELETE请求@PatchMapping
:PATCH请求
- 多个注解组合使用: 可以将多个注解组合使用以更精确地定义请求映射规则。
@GetMapping("/users") @ResponseBody public List<User>
getUsers() { // ... }
- 动态路径变量: 使用
{}
包围的路径部分可以作为路径变量,将请求中匹配的部分传递给方法参数。
@GetMapping("/users/{id}") public User getUserById(@PathVariable Long id)
{ // ... }
- 请求内容类型和响应内容类型:
consumes
:指定处理请求的Content-Type。produces
:指定方法返回的响应内容类型(MIME类型)。
@RequestMapping(value = "/users", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody public ServiceResult createUser(@RequestBody User user) { // ... } @RequestMapping(value = "/users", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody public List<User> getUsers() { // ... }
这些是@RequestMapping
注解的一些常用属性和用法。通过合理配置@RequestMapping
注解,您可以根据实际需求来定义请求的映射规则,并将请求路由到对应的处理方法进行处理。