当前位置: 首页 > article >正文

Spring学习笔记_49——@ResponseBody

Spring学习笔记_46——@InitBinder
Spring学习笔记_47——@RequestAttribute
Spring学习笔记_48——@SessionAttribute

@ResponseBody

文章目录

  • @ResponseBody
      • 1. 介绍
      • 2. 场景
      • 3. 源码
      • 4. Demo
        • 4.1 基本用法
        • 4.2 与@RestController结合


1. 介绍

在介绍RestController注解时,提到了@ResponseBody注解,@RestController注解同时具备@Controller注解和@ResponseBody注解的功能。

@ResponseBody 是 Spring MVC 中的一个非常有用的注解,它用于将控制器(Controller)方法的返回值直接写入 HTTP 响应体(response body)中,而不是解析为视图(View)的名称。这在开发 RESTful Web 服务时尤其常见,因为通常我们需要返回 JSON 或 XML 等格式的数据,而不是视图。

2. 场景

@ResponseBody注解往往会结合@Controller注解和@RequestMapping注解使用,能够将方法的返回结果响应给客户端程序。

@ResponseBody 注解在 Spring MVC 和 Spring Boot 中广泛用于将控制器(Controller)方法的返回值直接作为 HTTP 响应体(response body)发送给客户端,而不是将其解析为视图(View)名称。

3. 源码

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ResponseBody {

}

从源码可以看出,@ResponseBody注解可以标注到类上,也可以标注到方法上,在@ResponseBody注解中没有提供任何属性

4. Demo

4.1 基本用法
@Controller
public class MyController {

    @RequestMapping(value = "/getUser", method = RequestMethod.GET)
    @ResponseBody
    public User getUser() {
        return new User("John Doe", 30);
    }
}
4.2 与@RestController结合
@RestController // 相当于 @Controller + @ResponseBody
public class MyController {

    @GetMapping("/getUser")
    @ResponseBody // 在这里可以省略,因为 @RestController 已经包含了 @ResponseBody
    public User getUser() {
        return new User("John Doe", 30);
    }
}

http://www.kler.cn/a/409746.html

相关文章:

  • 计算机网络socket编程(2)_UDP网络编程实现网络字典
  • 【隐私计算大模型】联邦深度学习之拆分学习Split learning原理及安全风险、应对措施以及在大模型联合训练中的应用案例
  • 2025-2026财年美国CISA国际战略规划(下)
  • LLaMA-Mesh: Unifying 3D Mesh Generation with Language Models 论文解读
  • RocketMQ: Broker 使用指南
  • HashMap源码详解
  • Spring Boot 开发环境搭建详解
  • 【八股文】小米
  • 【漏洞复现】|百易云资产管理运营系统/mobilefront/c/2.php前台文件上传
  • 云计算虚拟化-kvm-无损扩容磁盘分区
  • java-分而治之算法
  • 极简开源Windows桌面定时提醒休息python程序
  • 常见排序算法总结 (一) - 三种基本排序
  • Java爬虫与淘宝API接口:高效数据采集的结合
  • 搜索二叉树(增删查)
  • Linux——Uboot命令使用
  • git提交到远程仓库如何撤回?
  • Stable Diffusion 3 部署笔记
  • 开源电话机器人产品的优点是什么?
  • Linux系统中查看当前使用的显示管理器
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — 公共模块
  • 电子应用设计方案-24:智能防火系统方案设计
  • XSS 与 CSRF 记录
  • 第一次shell作业
  • 民宿预定管理系统|Java|SSM|Vue| 前后端分离
  • 打造智能扩容新纪元:Kubernetes Custom Metrics深度解析