@RequestMapping注解详解

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

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

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

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

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

  1. 请求路径匹配:
  • 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() { // ... }

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

@GetMapping("/users") @ResponseBody public List<User> 
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<User> getUsers() { // ... }

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提到,@RequestMapping注解用于将请求映射到特定的方法上,而@GetMapping注解则相当于@RequestMapping(method=RequestMethod.GET),用于将GET请求映射到特定的方法上。 引用中介绍了如何将多个请求映射到同一个方法上。只需要在@RequestMapping注解中添加一个请求路径值列表即可实现。例如,在类上添加@RestController和@RequestMapping("/home")注解,然后在方法上添加@RequestMapping注解并指定多个请求路径值,例如"", "/page", "page*", "view/*,**/msg",这样这个方法就能够处理这些请求路径的请求。 引用提供了一个同时在类和方法上应用@RequestMapping注解的示例。通过在类上添加@RequestMapping("/home")注解,可以将类中的所有方法的请求映射到"/home"路径下。然后,在方法上添加@RequestMapping注解并指定具体的请求路径,例如"/"和"/index",这样这两个方法就能够分别处理"/home/"和"/home/index/"的请求。 所以,@RequestMapping注解是用于将请求映射到方法上的注解。它可以根据请求的不同路径进行映射,并支持在类和方法上同时使用。同时,@GetMapping注解是一种简化形式,用于将GET请求映射到方法上。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [@RequestMapping详解](https://blog.csdn.net/m0_67401055/article/details/125057030)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [@RequestMapping](https://blog.csdn.net/weixin_44471080/article/details/108518255)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值