@RequestMapping注解详解

@RequestMapping是Spring MVC中的注解,用于将HTTP请求映射到Java方法上。它可以应用在类级别或方法级别,并具有许多可配置的属性来定义请求的映射规则。

  1. 基本用法:
  • 在类级别上使用@RequestMapping注解时,可以为该类中的所有处理方法指定共享的路径前缀。
     

    @RestController @RequestMapping("/api") 
    public class MyController { // ... }

  • 在方法级别上使用@RequestMapping注解时,可以指定具体的请求路径和HTTP方法。
     

    @GetMapping("/users") public List getUsers() { // ... }

  1. 请求路径匹配:
  • value 或 path:指定请求的URL路径,支持Ant风格的通配符路径模式。
     

    @RequestMapping(value = "/users", method = RequestMethod.GET) public List getUsers() { // ... }

  • method:指定处理请求的HTTP方法。
     

    @RequestMapping(value = "/users", method = RequestMethod.POST)
     public void createUser(@RequestBody User user) { // ... }

  • params:指定请求参数的条件限制。
     
    
    @RequestMapping(value = "/users", params = "role=admin") 
    public List getAdminUsers() { // ... }

  • headers:指定请求头的条件限制。
     

    @RequestMapping(value = "/users", headers = "Authorization")
     public void getUserWithAuthorization() { // ... }

  1. 映射到不同的HTTP方法:
  • @GetMapping:GET请求
  • @PostMapping:POST请求
  • @PutMapping:PUT请求
  • @DeleteMapping:DELETE请求
  • @PatchMapping:PATCH请求
  1. 多个注解组合使用: 可以将多个注解组合使用以更精确地定义请求映射规则。
 
  

@GetMapping("/users") @ResponseBody public List 
getUsers() { // ... }
  1. 动态路径变量: 使用{}包围的路径部分可以作为路径变量,将请求中匹配的部分传递给方法参数。
 
  

@GetMapping("/users/{id}") public User getUserById(@PathVariable Long id) 
{ // ... }
  1. 请求内容类型和响应内容类型:
  • 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 getUsers() { // ... }

这些是@RequestMapping注解的一些常用属性和用法。通过合理配置@RequestMapping注解,您可以根据实际需求来定义请求的映射规则,并将请求路由到对应的处理方法进行处理。

你可能感兴趣的:(java,web)