Spring MVC的@ResponseBody与@RequestBody
@ResponseBody注解用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端。
@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容(json数据)转换为java对象并绑定到Controller方法的参数上。
举个栗子:
public R<AddressBook> setDefault(@RequestBody AddressBook addressBook) {
return R.success(addressBook);
}
RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容(json数据)转换为java对象并绑定到Controller方法的参数上。
@RestController
public class UserController {
@GetMapping("/users/{userId}")
@ResponseBody
public User getUser(@PathVariable Long userId) {
// 根据 userId 获取用户信息
User user = userService.getUserById(userId);
return user;
}
}
@ResponseBody注解则明确告诉Spring MVC将getUser方法的返回值直接作为HTTP响应正文返回。如果返回的对象是自定义对象,Spring会自动将其序列化为JSON或XML格式(具体取决于客户端请求的Accept头信息)