多了这个@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}
相关推荐
14 小时前
从0开始搭建web应用
后端
Ray6614 小时前
guide-rpc-framework笔记(四):网络编程
后端
Moonbit14 小时前
安装Wasm版的MoonBit工具链
后端·node.js·webassembly
法欧特斯卡雷特14 小时前
从 Kotlin 编译器 API 的变化开始: 2.2.2X -> 2.3.0-Beta1
后端·架构·开源
zjjuejin15 小时前
Maven 现代开发流程的集成
java·后端·maven
hrrrrb15 小时前
【Spring Boot】Spring Boot 中常见的加密方案
java·spring boot·后端
Lilian15 小时前
Trae通过ssh远程访问服务器linux系统不兼容问题
后端·trae
123445215 小时前
Spring Boot 启动流程全解析:从 SpringApplication.run() 到 Bean 初始化与自动配置
后端
Java中文社群15 小时前
我的网站被攻击了!
后端
程序定小飞15 小时前
基于springboot的在线商城系统设计与开发
java·数据库·vue.js·spring boot·后端