多了这个@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 分钟前
搭建一款结合传统黄历功能的日历小程序
前端·javascript·后端
你的人类朋友4 分钟前
🍃认识一下boomi
后端
苏三说技术8 分钟前
MySQL的三大日志
后端
豌豆花下猫17 分钟前
让 Python 代码飙升330倍:从入门到精通的四种性能优化实践
后端·python·ai
南雨北斗1 小时前
TP6使用PHPMailer发送邮件
后端
你的人类朋友1 小时前
🤔什么时候用BFF架构?
前端·javascript·后端
争不过朝夕,又念着往昔2 小时前
Go语言反射机制详解
开发语言·后端·golang
绝无仅有4 小时前
企微审批对接错误与解决方案
后端·算法·架构
Super Rookie4 小时前
Spring Boot 企业项目技术选型
java·spring boot·后端
来自宇宙的曹先生4 小时前
用 Spring Boot + Redis 实现哔哩哔哩弹幕系统(上篇博客改进版)
spring boot·redis·后端