跳转至

@ResponseBody 的作用

一、作用

把方法返回值直接写入 HTTP 响应体,而不是走视图解析。

二、普通返回视图

@Controller
public class MyController {
    @GetMapping("/page")
    public String page() {
        return "index";   // ViewResolver 解析成 index.html
    }
}

三、加 @ResponseBody

@GetMapping("/api")
@ResponseBody
public User api() {
    return new User("张三", 18);
}

返回 JSON:

{"name":"张三","age":18}

四、返回对象怎么变成 JSON

HttpMessageConverter: - MappingJackson2HttpMessageConverter 用 Jackson 把对象序列化成 JSON。 - 根据请求头 Accept 决定格式。

五、返回类型

  • 普通对象 → JSON。
  • String → 纯文本。
  • byte[] → 二进制。
  • ResponseEntity → 自定义状态码和头。

六、@RestController

类上加 @RestController,所有方法自动带 @ResponseBody。

对比

@RequestBody:把请求体 JSON 转成对象。 @ResponseBody:把返回对象转成 JSON。