多了这个@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}
相关推荐
GetcharZp41 分钟前
比 Zap 还要快?Go 社区高性能日志神器 Zerolog 落地实践指南
后端
anzhxu1 小时前
Go基础之环境搭建
开发语言·后端·golang
刀法如飞1 小时前
一款Python语言Django框架DDD脚手架,适合中大型项目
后端·python·领域驱动设计
zb200641202 小时前
SpringBoot详解
java·spring boot·后端
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题】【Java基础篇】第7题:HashMap的get流程是什么
java·后端·面试·哈希算法·散列表·hash-index·hash
霸道流氓气质3 小时前
SpringBoot+LangChain4j+Ollama+RAG(检索增强生成)实现私有文档向量化检索回答
java·spring boot·后端
MiNG MENS3 小时前
基于SpringBoot和Leaflet的行政区划地图掩膜效果实战
java·spring boot·后端
IT_陈寒4 小时前
Vite静态资源加载把我坑惨了
前端·人工智能·后端
2601_949814694 小时前
Spring Boot中的404错误:原因、影响及处理策略
java·spring boot·后端
RDCJM4 小时前
Spring Boot spring.factories文件详细说明
spring boot·后端·spring