@RequestMapping注解详解

@RequestMapping是SpringMVC中用于映射HTTP请求到Java方法的注解,可以在类或方法级别使用。它支持配置如value/path(请求路径)、method(HTTP方法)、params(请求参数条件)、headers(请求头条件)等属性,以及GET、POST、PUT、DELETE等请求方法映射。同时,注解还能处理动态路径变量,并指定consumes(请求内容类型)和produces(响应内容类型)。通过这些配置,可以精细控制请求路由和处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@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注解,您可以根据实际需求来定义请求的映射规则,并将请求路由到对应的处理方法进行处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值