spring-webmvc @ResponseBody 典型用法

典型用法

基本用法:返回 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;就對那個維度…