@ResponseBody注解与@RequestMapping结合使用时主要有以下作用:
-
响应体数据转换
将控制器方法的返回值直接写入HTTP响应体(而非视图解析),自动通过HttpMessageConverter转换为JSON/XML等格式。例如返回Java对象时会自动转为JSON响应。 -
与
@RequestMapping的协作机制- 单独使用
@RequestMapping时,返回值默认被解析为视图路径(如返回"hello"会寻找hello.html) - 添加
@ResponseBody后,返回值直接作为响应内容输出,跳过视图解析流程 - 典型示例:
@RequestMapping("/user")
@ResponseBody
public User getUser() {
return new User("Alice"); // 自动转为JSON
}
- 单独使用
-
简化形式
@RestController
@RestController是@Controller+@ResponseBody的组合注解,类中所有方法默认具有@ResponseBody效果。 -
异步请求支持
特别适用于AJAX/RESTful接口,确保数据直接返回给前端而非跳转页面。 -
编码与格式控制
可通过produces属性指定响应类型和编码,如@RequestMapping(produces="application/json;charset=UTF-8")。

被折叠的 条评论
为什么被折叠?



