@ResponseBody 和 @RequestBody 是Spring MVC框架中常用的注解,用于处理HTTP请求和响应的数据。
@ResponseBody 注解通常用于方法上,表示该方法的返回值将直接作为HTTP响应的内容返回给客户端。Spring会根据方法返回值的类型和配置的消息转换器将返回值转换为相应的格式(如JSON、XML等)。该注解常用于RESTful接口的实现,用于返回数据。
例子:
```java
@GetMapping("/user/{id}")
@ResponseBody
public User getUser(@PathVariable("id") int id) {
// 从数据库或其他地方获取用户信息
User user = userService.getUserById(id);
return user;
}
```
@RequestMapping 注解通常用于方法的参数上,表示该参数将作为HTTP请求的主体部分,用于接收客户端发送的数据。Spring会根据请求的Content-Type和配置的消息转换器将请求的数据转换为对应的Java对象。该注解常用于接收客户端发送的数据。
例子:
```java
@PostMapping("/user")
public void addUser(@RequestBody User user) {
// 将接收到的用户数据保存到数据库或其他地方
userService.addUser(user);
}
```
综上所述,@ResponseBody 用于方法上,表示返回值作为HTTP响应的内容,而 @RequestBody 用于方法的参数上,表示接收HTTP请求的主体部分。