springboot中@RequestMapping的用法
时间: 2023-03-04 09:53:23 浏览: 190
在 Spring Boot 中,@RequestMapping 是一个注解,它用于将 HTTP 请求映射到特定的处理方法上。
@RequestMapping 注解可以用在类或方法上,用于定义 URL 和 HTTP 请求方法与处理方法的映射关系。例如:
```java
@RestController
@RequestMapping("/example")
public class ExampleController {
@RequestMapping(method = RequestMethod.GET)
public String hello() {
return "Hello World!";
}
@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
public User getUser(@PathVariable Long id) {
// 处理获取用户的逻辑
}
@RequestMapping(value = "/user", method = RequestMethod.POST)
public User createUser(@RequestBody User user) {
// 处理创建用户的逻辑
}
}
```
在上面的示例中,@RestController 注解表示该类是一个 RESTful 风格的控制器类,@RequestMapping("/example") 定义了该类中所有处理方法的 URL 的前缀,比如 /example/user 和 /example/user/1。
hello() 方法的 @RequestMapping 注解只有 method 属性,表示该方法处理 GET 请求,因此它的 URL 是 /example,通过浏览器访问该 URL 就可以看到 Hello World! 字符串。
getUser() 方法的 @RequestMapping 注解包含了 value 和 method 属性,表示该方法处理的 URL 是 /example/user/{id},其中 {id} 是一个占位符,用于接收请求中的参数。@PathVariable 注解表示将请求中的参数绑定到方法的参数上,比如 /example/user/1 将被映射到 getUser(1) 方法上。
createUser() 方法的 @RequestMapping 注解包含了 value 和 method 属性,表示该方法处理的 URL 是 /example/user,并且它是一个 POST 请求,@RequestBody 注解表示将请求中的 JSON 字符串绑定到方法的参数上,比如:
```json
{
"name": "Tom",
"age": 20
}
```
将被映射到 createUser(new User("Tom", 20)) 方法上。
除了 method、value 属性外,@RequestMapping 注解还支持很多其他属性,比如 headers、consumes、produces 等,用于更精细地控制请求映射的条件。
阅读全文