RequestMapper
时间: 2025-01-05 15:18:10 浏览: 8
### 关于 `@RequestMapping` 注解的使用方法
#### 映射 HTTP 请求至处理方法
`@RequestMapping` 注解用于将特定类型的 HTTP 请求映射到相应的控制器方法上。此注解能够指定 URL 模式以及支持的具体 HTTP 方法,如 GET、POST 等。
```java
@RestController
@RequestMapping("/example")
public class ExampleController {
@RequestMapping(value = "/greet", method = RequestMethod.GET)
public String greet() {
return "Hello, this is a greeting message!";
}
@RequestMapping(value = "/submit", method = RequestMethod.POST)
public String submit(@RequestParam("data") String data) {
return "Received: " + data;
}
}
```
在这个例子中,当客户端发送 GET 请求访问 `/example/greet` 路径时,服务器端将会调用 `ExampleController.greet()` 方法并返回相应消息;而 POST 请求提交给 `/example/submit?data=yourDataHere` 则会被路由到 `submit(String)` 函数[^1]。
#### 支持多种匹配条件
除了基本路径外,还可以利用通配符模式或正则表达式的组合来定义更复杂的请求路径:
```java
// 匹配 /users/* 下的所有资源
@RequestMapping("/users/**")
// 只允许数字作为 id 参数的一部分
@RequestMapping("/product/{id:\\d+}")
```
这些特性使得开发者可以根据实际需求灵活配置 API 接口的行为逻辑[^4]。
#### 处理不同格式的数据输入输出
对于现代 Web 开发而言,RESTful 风格的服务通常涉及 JSON 或 XML 形式的交互数据。为了简化这类操作,在声明处理器函数签名时可以直接借助框架内置的支持机制自动完成序列化与反序列化的转换工作:
```java
@PostMapping(path="/createUser", consumes="application/json", produces="application/json")
@ResponseBody
public User createUser(@RequestBody User user){
// Process the incoming user object...
return userService.save(user);
}
```
这里展示了一个创建用户的接口设计案例,它接受 JSON 编码的内容体,并同样以 JSON 的形式响应新实体的信息[^2]。
阅读全文