最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring MVC 四種核心傳參形式對比分析

 更新時間:2026年01月26日 16:30:35   作者:哪里不會點(diǎn)哪里.  
SpringMVC中的參數(shù)接收機(jī)制主要分為四種核心形式,理解這四種參數(shù)的來源和適用場景,可以掌握SpringMVC中80%的參數(shù)接收機(jī)制,本文給大家介紹Spring MVC 四種核心傳參形式對比分析,感興趣的朋友跟隨小編一起看看吧

在使用 Spring MVC 編寫接口時,我們幾乎每天都在和“參數(shù)”打交道。
路徑參數(shù)、請求參數(shù)、JSON、對象接收……看起來方式很多,但如果只停留在“記注解”,很容易越學(xué)越亂。

事實(shí)上,從參數(shù)來源的角度來看,Spring MVC 中絕大多數(shù)的傳參方式都可以歸納為 四種核心形式路徑參數(shù)、請求參數(shù)、請求體參數(shù)、對象參數(shù)

理解這四類參數(shù)的來源和適用場景,基本就掌握了 Spring MVC 80% 的參數(shù)接收機(jī)制。

一、路徑參數(shù):參數(shù)直接來自 URL 路徑

1. 什么是路徑參數(shù)

路徑參數(shù)是 URL 路徑本身的一部分,通常用于表示某個具體資源。

GET /users/1

其中的 1,就是一個典型的路徑參數(shù)。

2. 使用方式

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

3. 特點(diǎn)與適用場景

  • 參數(shù)嵌入在 URL 中,語義清晰
  • 符合 RESTful 設(shè)計風(fēng)格
  • 通常用于資源的定位

常見場景:

  • 根據(jù) id 查詢詳情
  • 根據(jù) id 刪除資源

二、請求參數(shù):來自 URL 或表單的 key-value 參數(shù)

1. 什么是請求參數(shù)

請求參數(shù)通常以 key=value 的形式出現(xiàn),存在于 URL 查詢串或表單數(shù)據(jù)中。

GET /users?name=zhangsan&age=18

2. 使用方式

@GetMapping("/users")
public List<User> list(
        @RequestParam String name,
        @RequestParam Integer age) {
    return userService.list(name, age);
}

3. 特點(diǎn)與適用場景

  • 參數(shù)形式簡單、直觀
  • 適合可選參數(shù)較多的場景
  • 不具備強(qiáng)結(jié)構(gòu)性

常見場景:

  • 條件查詢
  • 分頁、排序參數(shù)

三、請求體參數(shù):來自 HTTP Request Body 的結(jié)構(gòu)化數(shù)據(jù)

1. 什么是請求體參數(shù)

請求體參數(shù)來源于 HTTP 請求體,通常是 JSON 格式,前后端分離項目中非常常見。

{
  "name": "zhangsan",
  "age": 18
}

2. 使用方式

@PostMapping("/users")
public void save(@RequestBody User user) {
    userService.save(user);
}

3. 特點(diǎn)與適用場景

  • 數(shù)據(jù)結(jié)構(gòu)清晰、層次分明
  • 通常用于 POST、PUT 請求
  • 依賴 HttpMessageConverter 進(jìn)行解析

常見場景:

  • 新增數(shù)據(jù)
  • 更新數(shù)據(jù)
  • 前后端分離接口

四、對象參數(shù):請求參數(shù)的自動封裝

1. 什么是對象參數(shù)

對象參數(shù)并不是單獨(dú)的一種數(shù)據(jù)來源,而是 Spring MVC 將請求參數(shù)自動綁定為 Java 對象的結(jié)果

POST /users
name=zhangsan&age=18

2. 使用方式

@PostMapping("/users")
public void save(User user) {
    userService.save(user);
}

3. 底層原理說明

Spring 會根據(jù)以下規(guī)則進(jìn)行自動綁定:

  • 請求參數(shù)名
  • 對象屬性名
  • 對應(yīng)的 setter 方法

只要三者匹配,就可以完成自動封裝。

這是 Spring MVC 非常“無感但強(qiáng)大”的能力。

五、一個非常容易混淆的點(diǎn)

對象參數(shù) ≠ 請求體參數(shù)

很多人容易把下面兩種寫法混為一談:

public void save(User user)              // 對象參數(shù)(來自請求參數(shù))
public void save(@RequestBody User user) // 請求體參數(shù)(來自 JSON)

關(guān)鍵區(qū)別在于:

  • 是否使用 @RequestBody
  • 參數(shù)來自請求參數(shù),還是請求體

這一點(diǎn)在實(shí)際開發(fā)中非常重要。

六、四種傳參形式對比總結(jié)

類型參數(shù)來源典型注解常見場景
路徑參數(shù)URL 路徑@PathVariable資源定位
請求參數(shù)URL / 表單@RequestParam條件查詢
請求體參數(shù)Request Body@RequestBodyJSON 提交
對象參數(shù)請求參數(shù)封裝無 / @ModelAttribute表單提交

七、總結(jié)

Spring MVC 的傳參,本質(zhì)是根據(jù)“參數(shù)來源不同”,選擇不同的解析與綁定方式。

到此這篇關(guān)于Spring MVC 四種核心傳參形式對比分析的文章就介紹到這了,更多相關(guān)Spring MVC傳參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Boot 中 RestTemplate 的核心用法指南

    Spring Boot 中 RestTemplate 的核心用法指南

    本文詳細(xì)介紹了RestTemplate的使用,包括基礎(chǔ)用法、進(jìn)階配置技巧、實(shí)戰(zhàn)案例以及最佳實(shí)踐建議,通過一個騰訊地圖路線規(guī)劃的案例,展示了如何在實(shí)際項目中應(yīng)用RestTemplate進(jìn)行服務(wù)間通信,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • Ubuntu安裝JDK與IntelliJ?IDEA的詳細(xì)過程

    Ubuntu安裝JDK與IntelliJ?IDEA的詳細(xì)過程

    APT是Linux系統(tǒng)上的包管理工具,能自動解決軟件包依賴關(guān)系并從遠(yuǎn)程存儲庫中獲取安裝軟件包,這篇文章主要介紹了Ubuntu安裝JDK與IntelliJ?IDEA的過程,需要的朋友可以參考下
    2023-08-08
  • 詳解Java如何優(yōu)雅的實(shí)現(xiàn)異常捕獲

    詳解Java如何優(yōu)雅的實(shí)現(xiàn)異常捕獲

    在一個優(yōu)秀的項目中一定少不了對程序流程良好的異常捕獲與日志打印,所以本文主要為大家介紹了如何優(yōu)雅的實(shí)現(xiàn)異常捕獲與日志打印輸出,有需要的可以參考下
    2023-09-09
  • Spring?AI?Alibaba框架構(gòu)建智能體Agent的完整指南

    Spring?AI?Alibaba框架構(gòu)建智能體Agent的完整指南

    隨著大語言模型(LLM)技術(shù)的快速發(fā)展,構(gòu)建智能Agent應(yīng)用變得越來越簡單,本文將通過兩個實(shí)際的代碼示例,展示如何使用Spring?AI?Alibaba框架構(gòu)建功能豐富的天氣查詢Agent,感興趣的小伙伴可以了解下
    2026-03-03
  • Java ArrayList與LinkedList使用方法詳解

    Java ArrayList與LinkedList使用方法詳解

    Java中容器對象主要用來存儲其他對象,根據(jù)實(shí)現(xiàn)原理不同,主要有3類常用的容器對象:ArrayList使用數(shù)組結(jié)構(gòu)存儲容器中的元素、LinkedList使用鏈表結(jié)構(gòu)存儲容器中的元素
    2022-11-11
  • java 多態(tài)性詳解及常見面試題

    java 多態(tài)性詳解及常見面試題

    這篇文章主要介紹了java 多態(tài)性詳解及常見面試題的相關(guān)資料,這里對java 的多態(tài)性做了資料整理,并列舉常見的關(guān)于多態(tài)性的面試題,需要的朋友可以參考下
    2016-11-11
  • Java 重命名 Excel 工作表并設(shè)置工作表標(biāo)簽顏色的示例代碼

    Java 重命名 Excel 工作表并設(shè)置工作表標(biāo)簽顏色的示例代碼

    這篇文章主要介紹了Java 重命名 Excel 工作表并設(shè)置工作表標(biāo)簽顏色的示例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • JAVA?module-info.java文件詳解

    JAVA?module-info.java文件詳解

    這篇文章主要介紹了JAVA?module-info.java文件詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring Boot整合Spring Security簡單實(shí)現(xiàn)登入登出從零搭建教程

    Spring Boot整合Spring Security簡單實(shí)現(xiàn)登入登出從零搭建教程

    這篇文章主要給大家介紹了關(guān)于Spring Boot整合Spring Security簡單實(shí)現(xiàn)登入登出從零搭建的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧
    2018-09-09
  • java中靜態(tài)變量和實(shí)例變量的區(qū)別詳細(xì)介紹

    java中靜態(tài)變量和實(shí)例變量的區(qū)別詳細(xì)介紹

    本篇文章介紹了,java中靜態(tài)變量和實(shí)例變量的區(qū)別。需要的朋友參考下
    2013-05-05

最新評論

周至县| 金寨县| 达日县| 扶绥县| 大石桥市| 左贡县| 海丰县| 赤水市| 双江| 鹰潭市| 安阳市| 精河县| 武清区| 义乌市| 丰顺县| 武川县| 太康县| 柯坪县| 广河县| 岐山县| 建始县| 遂平县| 邵武市| 常熟市| 平乡县| 仁布县| 鄄城县| 绥棱县| 城固县| 平乐县| 突泉县| 玉溪市| 梧州市| 舟曲县| 乌兰浩特市| 辽阳县| 吴旗县| 岑溪市| 崇信县| 平果县| 喀喇沁旗|