欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot常用請(qǐng)求方式及請(qǐng)求參數(shù)傳遞的方式

 更新時(shí)間:2025年08月29日 10:58:11   作者:Liuzhengyue_  
本文給大家介紹SpringBoot常用請(qǐng)求方式及請(qǐng)求參數(shù)傳遞的方式,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

SpringBoot中常用的請(qǐng)求方式

@RequestMapping:不限制請(qǐng)求方式

@GetMapping:獲取數(shù)據(jù),參數(shù)拼接在url的?之后,參數(shù)名=參數(shù)值多個(gè)參數(shù)之間用&符號(hào)間隔,可緩存

@PostMapping:提交數(shù)據(jù),參數(shù)不可以直接看見(開發(fā)者工具/抓包)

@PutMapping:修改數(shù)據(jù)

@DeleteMapping:刪除數(shù)據(jù)

關(guān)于請(qǐng)求參數(shù)的傳遞

方法一:@PathVariable —— 獲取“路徑參數(shù)”

  • 適合場(chǎng)景:URL 路徑中有變量,比如 /user/1001
  • 例子
@GetMapping("/user/{id}")
public String getUserById(@PathVariable Long id) {
    // id 就是路徑里的 1001
    return "用戶ID:" + id;
}
  • 路徑轉(zhuǎn)化說明
    • 客戶端請(qǐng)求:GET /user/1001
    • 方法參數(shù):@PathVariable Long id 自動(dòng)獲得 1001

方法二:@RequestParam —— 獲取“查詢參數(shù)”或“表單參數(shù)”

  • 適合場(chǎng)景:URL 問號(hào)后的參數(shù),比如 /user?name=Tom
  • 例子
@GetMapping("/user")
public String getUserByName(@RequestParam String name) {
    // name 就是 URL 里的 Tom
    return "用戶名:" + name;
}
  • 路徑轉(zhuǎn)化說明
    • 客戶端請(qǐng)求:GET /user?name=Tom
    • 方法參數(shù):@RequestParam String name 自動(dòng)獲得 Tom

方法三:@RequestBody —— 獲取“請(qǐng)求體參數(shù)”(多用于 JSON)

  • 適合場(chǎng)景:客戶端 POST JSON 數(shù)據(jù),如注冊(cè)用戶
  • 例子
@PostMapping("/user/add")
public String addUser(@RequestBody User user) {
    // user 對(duì)象自動(dòng)映射 JSON 里的數(shù)據(jù)
    return "新增用戶:" + user.getName();
}
  • 路徑轉(zhuǎn)化說明
    • 客戶端請(qǐng)求:POST /user/add,請(qǐng)求體為 {"name":"Tom","age":20}
    • 方法參數(shù):@RequestBody User user 自動(dòng)映射

方法四:Spring Boot 的“隱式參數(shù)綁定”機(jī)制 

核心知識(shí)

Spring MVC(Spring Boot 2/3 都適用)有一個(gè)自動(dòng)參數(shù)綁定機(jī)制,叫做 隱式綁定(Implicit Binding)。

  • 如果你的 Controller 方法參數(shù)是簡(jiǎn)單類型(如 Stringint、long),而沒有添加注解,Spring 會(huì)自動(dòng)嘗試從請(qǐng)求的參數(shù)(QueryString、Form表單)中取同名值,并賦值給方法參數(shù)。

例子說明

前端請(qǐng)求:

  • POST /user/register
  • Content-Type: application/x-www-form-urlencoded
  • 請(qǐng)求體:username=Tom&password=123456

Controller 方法(如你圖片里的):

@PostMapping("/register")
public Result register(String username, String password) {
    // Spring 會(huì)自動(dòng)把請(qǐng)求體中的 username、password 賦值過來
}

詳細(xì)步驟:隱式綁定是怎么工作的?

步驟說明
1前端頁面表單用 POST 提交,參數(shù)名和方法參數(shù)名一致
2Spring 根據(jù) Content-Type 檢查是表單提交
3沒有 @RequestBody/@ModelAttribute/@RequestParam 注解時(shí),
Spring 會(huì)自動(dòng)把請(qǐng)求參數(shù)(key)和方法參數(shù)名匹配,賦值進(jìn)來
4如果參數(shù)名不一致,則賦值失敗,值為 null

總結(jié):只要表單的參數(shù)名和方法參數(shù)名一致,就能自動(dòng)綁定。

路徑轉(zhuǎn)化詳解 

舉例說明:

  • URL: http://localhost:8080/user/1001?name=Tom
    • 路徑參數(shù):/user/1001 → @PathVariable Long id
    • 查詢參數(shù):?name=Tom → @RequestParam String name
  • JSON 請(qǐng)求體(POST):
    • URL: /user/add
    • body: {"name":"Tom","age":20} → @RequestBody User user

常見場(chǎng)景和最佳實(shí)踐 

場(chǎng)景推薦方式說明
簡(jiǎn)單表單(2-3個(gè)參數(shù))可以省略注解,直接用同名參數(shù)省事,代碼少
參數(shù)較多推薦用 @ModelAttribute 封裝對(duì)象代碼更整潔,可擴(kuò)展性好
JSON 請(qǐng)求體必須用 @RequestBody否則接收不到數(shù)據(jù)
參數(shù)名不一致必須用 @RequestParam("xxx")明確映射關(guān)系

到此這篇關(guān)于SpringBoot請(qǐng)求方式及請(qǐng)求參數(shù)傳遞的方式的文章就介紹到這了,更多相關(guān)SpringBoot請(qǐng)求傳遞內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java Lambda表達(dá)式與匿名內(nèi)部類的聯(lián)系和區(qū)別實(shí)例分析

    Java Lambda表達(dá)式與匿名內(nèi)部類的聯(lián)系和區(qū)別實(shí)例分析

    這篇文章主要介紹了Java Lambda表達(dá)式與匿名內(nèi)部類的聯(lián)系和區(qū)別,結(jié)合實(shí)例形式分析了Java Lambda表達(dá)式與匿名內(nèi)部類功能、用法、區(qū)別及操作注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • spring boot啟動(dòng)加載數(shù)據(jù)原理分析

    spring boot啟動(dòng)加載數(shù)據(jù)原理分析

    實(shí)際應(yīng)用中,我們會(huì)有在項(xiàng)目服務(wù)啟動(dòng)的時(shí)候就去加載一些數(shù)據(jù)或做一些事情這樣的需求。這時(shí)spring Boot 為我們提供了一個(gè)方法,通過實(shí)現(xiàn)接口 CommandLineRunner 來實(shí)現(xiàn)。下面給大家詳細(xì)介紹下,需要的的朋友參考下吧
    2017-04-04
  • 淺談Java設(shè)計(jì)模式之原型模式知識(shí)總結(jié)

    淺談Java設(shè)計(jì)模式之原型模式知識(shí)總結(jié)

    Java原型模式主要用于創(chuàng)建重復(fù)的對(duì)象,同時(shí)又能保證性能,這篇文章就帶大家仔細(xì)了解一下原型模式的知識(shí),對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • 帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之二叉樹

    帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之二叉樹

    這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之二叉樹,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • MyEclipse打開文件跳轉(zhuǎn)到notepad打開問題及解決方案

    MyEclipse打開文件跳轉(zhuǎn)到notepad打開問題及解決方案

    windows系統(tǒng)打開README.md文件,每次都需要右鍵選擇notepad打開,感覺很麻煩,然后就把README.md文件打開方式默認(rèn)選擇了notepad,這樣每次雙擊就能打開,感覺很方便,這篇文章主要介紹了MyEclipse打開文件跳轉(zhuǎn)到notepad打開問題,需要的朋友可以參考下
    2024-03-03
  • java web實(shí)現(xiàn)自動(dòng)登錄

    java web實(shí)現(xiàn)自動(dòng)登錄

    這篇文章主要為大家詳細(xì)介紹了java web實(shí)現(xiàn)自動(dòng)登錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • JAVA常用分布式鎖Redisson詳解

    JAVA常用分布式鎖Redisson詳解

    Redisson分布式鎖通過Lua腳本的原子性、可重入設(shè)計(jì)、Watchdog 自動(dòng)續(xù)期和Pub/Sub 通知機(jī)制,實(shí)現(xiàn)了高效的分布式鎖管理,本文給大家介紹JAVA常用分布式鎖Redisson詳解,感興趣的朋友一起看看吧
    2025-05-05
  • Java中常見的陷阱題及答案

    Java中常見的陷阱題及答案

    在電腦里找到一份當(dāng)時(shí)學(xué)習(xí)JAVA時(shí)的筆記,看到一些現(xiàn)在已經(jīng)遺忘的細(xì)節(jié)。稍微整理了幾個(gè),發(fā)出來與大家分享。這篇文章主要介紹了Java中常見的陷阱題及答案,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • 利用Java生成帶有文字的二維碼

    利用Java生成帶有文字的二維碼

    二維碼在我們現(xiàn)在的生活中可謂是隨處可見,這篇文章主要是介紹如何利用Java生成帶有文字的二維碼,對(duì)大家學(xué)習(xí)Java具有一定的參考借鑒價(jià)值。有需要的朋友們下面來一起看看吧。
    2016-09-09
  • 使用feign配置網(wǎng)絡(luò)ip代理

    使用feign配置網(wǎng)絡(luò)ip代理

    這篇文章主要介紹了使用feign配置網(wǎng)絡(luò)ip代理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評(píng)論