多了这个@ResponseBody和没加有什么区别?

做项目中用到,有所疑惑的点

多了这个@ResponseBody和没加有什么区别?

解释

  1. 不加@ResponseBody(默认视图解析)

    • 返回值类型是逻辑视图名(String类型)或 ModelAndView对象
    • 例子
less 复制代码
@Controller
@RequestMapping("/old")
public class OldController {
   @GetMapping("/page")
   public String showPage(Model model) {
       model.addAttribute("message", "Hello World");
       return "page"; // 返回视图名称,由视图解析器解析为/WEB-INF/views/page.jsp
   }
}

结果:Spring会通过视图解析器查找对应的JSP/Thymeleaf等视图模板进行渲染

  1. 加了@ResponseBody(直接写入响应体)
  • 返回值类型:任意类型(自动根据内容协商转换)
less 复制代码
@Controller
@RequestMapping("/api")
public class ApiController {
    @ResponseBody
    @GetMapping("/data")
    public Map<String, Object> getData() {
        return Map.of("status", "success", "code", 200);
    }
}
  • ​​结果​​:

    • 自动使用 HttpMessageConverter 进行序列化(JSON/XML 等)
    • 示例响应头:Content-Type: application/json
    • 响应体:{"status":"success","code":200}
相关推荐
弈栈录1 分钟前
用户、会话与消息表应该如何设计
数据库·后端
maozhenzhong3 分钟前
接口加解密与安全通信方案
后端
god_cvz4 分钟前
第三章:5、MCP协议入门
后端·ai编程
RaaS1007 分钟前
AI网关选型指南:MAI Gateway(魔芋企业级AI网关)vs 开源方案全面对比
前端·后端
明月_清风13 分钟前
ClickHouse 实战指南:为什么它能做到"亿级数据秒级查询"?
后端·数据分析
Wx-bishekaifayuan25 分钟前
springboot铜仁非遗之家76938-计算机课程设计、毕业设计
java·spring boot·后端·spring·django·课程设计·旅游
唐青枫29 分钟前
薛定谔的猫详解:一只猫如何揭开量子测量之谜
后端
锋行天下31 分钟前
langgraph 循环节点的静态和动态实现
前端·后端
打工仔折腾 AI41 分钟前
在线PDF工具隐私焦虑?把BentoPDF部署到极空间NAS本地处理
人工智能·后端·python·pdf·ai agent 实战
彭亚川Allen1 小时前
从零手搓 RAG 之文档解析技术
前端·后端·架构