典型用法

基本用法:返回 JSON 数据

@GetMapping("/users/{id}")
@ResponseBody
public User getUser(@PathVariable Long id) {return userService.findById(id);
}

Spring 自动使用 Jackson(或其他 HttpMessageConverter)将 User 对象序列化为 JSON。
响应头 Content-Type 默认为 application/json。

结合 @Controller 使用(等价于 @RestController)

@RestController = @Controller + 所有方法默认加 @ResponseBody

@Controller
public class UserController {@GetMapping("/users")@ResponseBodypublic List<User> getAllUsers() {return userService.findAll();}
}等价于使用
@RestController
public class UserController {@GetMapping("/users")public List<User> getAllUsers() {return userService.findAll();}
}

返回统一响应结构(推荐做法)

实际项目中通常会封装统一的响应格式,如:

public class ApiResponse<T> {private int code;private String message;private T data;// 构造器、getter/setter
}@GetMapping("/users/{id}")
@ResponseBody
public ApiResponse<User> getUser(@PathVariable Long id) {User user = userService.findById(id);return ApiResponse.success(user);
}// 响应示例(JSON):
{"code": 200,"message": "OK","data": {"id": 1,"name": "Alice"}
}

支持 XML 输出(需配置 Jackson XML 模块)

如果客户端请求头指定 Accept: application/xml,Spring 可以自动返回 XML 格式:

@GetMapping(value = "/users", produces = MediaType.APPLICATION_XML_VALUE)
@ResponseBody
public List<User> getAllUsersInXml() {return userService.findAll();
}// 响应示例(XML):
<user><id>1</id><name>Alice</name>
</user>

返回字符串原始内容(不序列化)

如果你希望直接返回字符串内容而不是 JSON,可以这样做:

@GetMapping("/hello")
@ResponseBody
public String sayHello() {return "Hello, World!";
}

结合 ResponseEntity 使用(更灵活控制响应)

虽然 @ResponseBody 很方便,但如果你需要控制状态码或响应头,建议使用 ResponseEntity:

@GetMapping("/users")
public ResponseEntity<List<User>> getAllUsers() {List<User> users = userService.findAll();return ResponseEntity.ok().header("X-Custom-Header", "value").body(users);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85700.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85700.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/85700.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI-调查研究-08-跑步分析研究 潜在伤害与预防 不同年龄段与性别的情况

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月16日更新到&#xff1a; AI炼丹日志-29 - 字节…

AI任务相关解决方案9-深度学习在工业质检中的应用:基于DeepLabv3+模型的NEU-seg数据集语义分割研究

大家好我是微学AI,今天给大家介绍一下AI任务相关解决方案9-深度学习在工业质检中的应用:基于DeepLabv3+模型的NEU-seg数据集语义分割研究。DeepLabv3+模型在NEU-seg数据集上实现了高达87.65%的平均交并比(mIoU),为金属表面缺陷的高精度检测提供了有力工具。本文将详细探讨Dee…

mysql JSON_EXTRACT JSON_UNQUOTE 函数

在处理mysql 有存储的json字段&#xff0c;需要提取时候发现JSON_EXTRACT函数&#xff0c;发现此函数提取后会带有引号&#xff0c;组合使用JSON_UNQUOTE 可去掉引号&#xff01; JSON_EXTRACT 函数概述 JSON_EXTRACT是MySQL中用于从JSON文档中提取数据的函数&#xff0c;语法…

Prompt:更好的提示与迭代

欢迎来到啾啾的博客&#x1f431;。 记录学习点滴。分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 有很多很多不足的地方&#xff0c;欢迎评论交流&#xff0c;感谢您的阅读和评论&#x1f604;。 目录 1 引言1.1 引用资料 2 更好的提示2.1 情景学习IC…

SQL85 统计每个产品的销售情况

SQL85 统计每个产品的销售情况 好复杂&#xff0c;俺不中了。。 问题描述 本查询旨在分析2023年各产品的销售情况&#xff0c;包括&#xff1a; 每个产品的总销售额、单价、总销量和月均销售额每个产品销量最高的月份及其销量每个产品购买量最高的客户年龄段 解题思路 1. 基…

Django MAC Pycharm 命令行建立项目,注册app运行失败,找不到views导入包

相对复杂的情况 你没有直接在Pycharm中建立一个Django项目&#xff0c;而是直接建立某个项目或者打开某个项目&#xff0c;使用命令后安装Django后&#xff0c;使用命令后建立了Django项目&#xff0c;尽管你的目录尽可能干净&#xff0c;只有Django项目&#xff0c;但是这仍然…

窄带和宽带谁略谁优

窄带&#xff08;Narrowband&#xff09;与宽带&#xff08;Broadband&#xff09;深度对比 ——涵盖 优缺点、适用场景、调制方式 1. 窄带&#xff08;Narrowband&#xff09; 1.1 核心特点 带宽&#xff1a;≤25 kHz&#xff08;典型值&#xff0c;如NB-IoT仅占用180kHz&a…

李佳琦直播间618收官:6成销量为国货,多品类增超25%

618大促迎来收官&#xff0c;作为电商消费的关键风向标&#xff0c;李佳琦直播间生动呈现了当下消费市场的多元趋势。 据「TMT星球」了解&#xff0c;在长达近40天的大促里&#xff0c;李佳琦直播间不仅延续过往的高人气与强带货力&#xff0c;更在高质价比产品、高质量服务保…

c++ noexcept关键字

noexcept 是 C11 中引入的一个关键字&#xff0c;用来标记函数声明&#xff0c;表示该函数不会抛出异常。它可以用于函数、函数指针、Lambda 表达式等。使用 noexcept 可以帮助编译器进行优化&#xff0c;提高代码的执行效率&#xff0c;并且让程序在处理异常时更加明确。 1. …

腾讯混元3D制作简单模型教程-2

以下是腾讯混元3D制作简单模型的详细教程&#xff0c;整合最新版本特性&#xff08;截至2025年6月&#xff09;&#xff0c;操作门槛低且无需专业基础&#xff1a; &#x1f5a5; 一、在线生成&#xff08;最快30秒完成&#xff09; ‌访问平台‌ 打开 腾讯混元3D创作引擎官网…

阿里云申请ssl证书,同时需要绑定域名,下载nginx压缩包,nginx添加证书路径即可

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、ssl是什么&#xff1f;二、登录阿里云三、图片教程四、添加域名前缀&#xff08;www&#xff09;如&#xff1a;www.baidu.com总结 一、ssl是什么&#xff1f; …

额度互动促进金融健康,蚂蚁消金创新智能实时交互式风控系统

“蚂蚁消金希望利用交互式智能风控技术&#xff0c;挖掘年轻人努力成长的证明”。6月19日&#xff0c;在上海举行的2025中国国际金融展上&#xff0c;蚂蚁消金首席风险官林嘉南分享了&#xff0c;如何将大模型技术应用在交互式智能风控领域&#xff0c;从而促进额度的互动性&am…

SAP-ABAP:LOOP ... ASSIGNING高效处理内表数据详解

在ABAP中&#xff0c;LOOP ... ASSIGNING 是高效处理内表数据的关键技术&#xff0c;它通过字段符号(field symbol) 直接访问内表内存地址&#xff0c;避免数据副本创建。以下是详细用法指南&#xff1a; 一、基础语法结构 FIELD-SYMBOLS: <fs_line> TYPE any. " …

Tomcat本地部署Maven Java Web项目

接下来是在widows部署maven javaweb 首先要配置tomcat&#xff0c;我这里是联合项目&#xff0c;需要配置多个tomcat 选择每个对应的war包 这里的项目名和端口号要改&#xff0c;否则多个项目启动会因为端口号占用无法启动 Tomcat运行项目 打包 在右边的Maven视图里面找到…

golang--具名返回值、匿名返回值与 defer 语句之间的关系,以及 panic 对它们的影响

好的&#xff0c;我们来详细探讨 Go 语言中具名返回值、匿名返回值与 defer 语句之间的关系&#xff0c;以及 panic 对它们的影响。这是 Go 错误处理和资源管理中的核心机制。 核心概念 具名返回值 (Named Return Values): 在函数签名中声明返回变量名。例如&#xff1a;fun…

FFmpeg 超级详细安装与配置教程(Windows 系统)

1. 前言 FFmpeg 是一个用于处理视频、音频等多媒体文件的开源工具包。它支持几乎所有的多媒体格式转换、剪辑和编辑&#xff0c;是开发者和多媒体工作者必备的工具。本文详细讲解如何在 Windows 系统上安装 FFmpeg 并进行基本配置。 2. 下载 FFmpeg 安装包 打开 Download FFmp…

Pytorch中gather()函数详解和实战示例

在 PyTorch 中&#xff0c;torch.gather() 是一个非常实用的张量操作函数&#xff0c;主要用于根据索引从输入张量中选择特定位置的值。它常用于注意力机制、序列处理等场景。 函数定义 torch.gather(input, dim, index) → Tensorinput&#xff1a;待提取数据的张量。dim&…

uniapp 微信小程序在线引入字体图标

在线引入字体图标&#xff0c;出现体验版&#xff0c;真机调试字体图标不出来&#xff0c;模拟器上是好的 由于字体图标和小程序域名不在同一个&#xff0c;所以出现了跨域问题&#xff0c;将字体图标文件放到小程序同一个域名下就好了

macOS版的节点小宝上架苹果APP Store了

前言 前段时间很多小伙伴按照小白的教程在飞牛NAS部署了节点小宝之后&#xff0c;Windows的小伙伴玩得不亦乐乎&#xff01; 反观macOS用户……因为没有#macOS版本的节点小宝&#xff0c;就算是在飞牛NAS上部署了节点小宝&#xff0c;却一点也开心不起来。 毕竟iOS版本的节点…

tensor向量按任意维度进行切片、拆分、组合

torch.index_select(input_tensor, 切片维度, 切片索引) 注意&#xff1a;切完之后&#xff0c;转onnx时会生成Gather节点&#xff1b; torch自带切片操作&#xff1a; start : end : step&#xff1a; 范围前闭后开&#xff0c;将其放在哪个维度上&#xff0c;就对那个维度…