多了这个@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}
相关推荐
得物技术18 小时前
# 一、项目概览 Dragonboat 是纯 Go 实现的(multi-group)Raft 库。 为应用屏蔽 Raft 复杂性,提供易于使用的 NodeH
后端
4***149018 小时前
Rust系统工具开发实践指南
开发语言·后端·rust
s***353018 小时前
Spring Boot3.x集成Flowable7.x(一)Spring Boot集成与设计、部署、发起、完成简单流程
java·spring boot·后端
大头an18 小时前
Spring Boot CLI 从入门到企业级实战(上下篇)
后端
s***45318 小时前
SpringBoot返回文件让前端下载的几种方式
前端·spring boot·后端
元Y亨H18 小时前
一文读懂计算机系统核心流量术语
后端
q***064718 小时前
SpringSecurity相关jar包的介绍
android·前端·后端
陈橘又青19 小时前
100% AI 写的开源项目三周多已获得 800 star 了
人工智能·后端·ai·restful·数据
2501_9411486119 小时前
C++实时数据处理实战:多线程与异步IO结合高性能代码解析
java·后端·struts
IT_陈寒20 小时前
Redis实战:5个高频应用场景下的性能优化技巧,让你的QPS提升50%
前端·人工智能·后端