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

SpringBoot?中處理接口傳參時常用的注解及使用場景分析

 更新時間:2026年02月03日 09:31:49   作者:Elieal  
SpringBoot提供了多種注解來處理不同位置的參數(shù),包括路徑參數(shù)、URL請求參數(shù)、請求體參數(shù)、請求頭參數(shù)和Cookie參數(shù),每種注解都有其特定的使用場景和核心用法,下面給大家介紹SpringBoot中處理接口傳參時常用的注解及使用場景分析,感興趣的朋友跟隨小編一起看看吧

SpringBoot 接收前端參數(shù)的核心注解都基于 Spring MVC,主要解決不同位置參數(shù)(URL 路徑、請求頭、請求體、URL 參數(shù)等)的綁定問題,下面按使用場景分類說明:

1. 路徑參數(shù)(URL 中 /{xxx} 形式):@PathVariable

  • 核心作用:綁定 URL 路徑中的動態(tài)參數(shù)(如/user/123中的123)到方法參數(shù)。
  • 使用場景:RESTful 風(fēng)格接口,獲取資源 ID、分類標(biāo)識等。
  • 核心用法
@RestController
@RequestMapping("/user")
public class UserController {
    // 訪問路徑:/user/123
    @GetMapping("/{id}")
    public String getUserById(@PathVariable Long id) {
        return "獲取到用戶ID:" + id;
    }
    // 多路徑參數(shù) + 指定參數(shù)名(參數(shù)名與路徑變量名不一致時)
    @GetMapping("/{id}/order/{orderId}")
    public String getUserOrder(
        @PathVariable("id") Long userId, 
        @PathVariable("orderId") Long orderId
    ) {
        return "用戶ID:" + userId + ",訂單ID:" + orderId;
    }
}
  • 關(guān)鍵說明:默認(rèn)要求路徑變量名與方法參數(shù)名一致,不一致時需用@PathVariable("xxx")指定。

2. URL 請求參數(shù)(?key=value 形式):@RequestParam

  • 核心作用:綁定 URL 中?后的查詢參數(shù)(如/user?name=張三)到方法參數(shù)。
  • 使用場景:分頁、篩選、簡單條件查詢(如page=1&size=10)。
  • 核心用法
@RestController
@RequestMapping("/user")
public class UserController {
    // 訪問路徑:/user/list?name=張三&age=20
    @GetMapping("/list")
    public String getUserList(
        @RequestParam String name, // 必傳參數(shù)
        @RequestParam(required = false, defaultValue = "18") Integer age // 非必傳+默認(rèn)值
    ) {
        return "姓名:" + name + ",年齡:" + age;
    }
}
  • 關(guān)鍵屬性
    • required:是否必傳,默認(rèn)true(不傳會報錯);
    • defaultValue:參數(shù)未傳時的默認(rèn)值(僅required=false時生效);
    • value:指定 URL 參數(shù)名(與方法參數(shù)名不一致時用)。

3. 請求體參數(shù)(JSON/XML):@RequestBody

  • 核心作用:綁定 HTTP 請求體(通常是 JSON 格式)到 Java 對象(POJO)。
  • 使用場景:POST/PUT 請求,傳遞復(fù)雜數(shù)據(jù)(如新增 / 修改用戶信息)。
  • 核心用法
// 1. 定義POJO(接收前端JSON)
public class UserDTO {
    private String name;
    private Integer age;
    // 省略getter/setter
}
// 2. 控制器接收參數(shù)
@RestController
@RequestMapping("/user")
public class UserController {
    // 前端POST請求體:{"name":"張三","age":20}
    @PostMapping("/add")
    public String addUser(@RequestBody UserDTO userDTO) {
        return "新增用戶:" + userDTO.getName() + ",年齡:" + userDTO.getAge();
    }
}
  • 關(guān)鍵說明
    • 僅支持 POST/PUT 等有請求體的請求(GET 請求無請求體,用會報錯);
    • 前端需保證 Content-Type 為application/json,否則解析失?。?/li>
    • 可搭配@Valid/@Validated做參數(shù)校驗(如@NotBlank(message = "姓名不能為空"))。

4. 請求頭參數(shù):@RequestHeader

  • 核心作用:綁定 HTTP 請求頭中的參數(shù)(如 Token、Content-Type)。
  • 使用場景:獲取令牌(Token)、語言標(biāo)識(Accept-Language)等。
  • 核心用法
@RestController
@RequestMapping("/user")
public class UserController {
    @GetMapping("/info")
    public String getUserInfo(
        @RequestHeader("token") String token, // 獲取token請求頭
        @RequestHeader(value = "Accept-Language", required = false) String lang // 非必傳
    ) {
        return "Token:" + token + ",語言:" + (lang == null ? "zh-CN" : lang);
    }
}

5. Cookie 參數(shù):@CookieValue

  • 核心作用:綁定 HTTP Cookie 中的參數(shù)。
  • 使用場景:獲取前端存儲的 Cookie(如用戶登錄態(tài))。
  • 核心用法
@RestController
@RequestMapping("/user")
public class UserController {
    @GetMapping("/cookie")
    public String getCookie(@CookieValue("JSESSIONID") String sessionId) {
        return "SessionID:" + sessionId;
    }
}

6. 無注解(自動綁定)

  • 核心作用:當(dāng)參數(shù)是簡單類型(String、Integer、Long 等)或 POJO 時,SpringBoot 會自動綁定 URL 參數(shù) / 表單參數(shù)到方法參數(shù)。
  • 使用場景:簡單表單提交、參數(shù)名與 POJO 字段名完全一致的場景。
  • 核心用法
// 1. 簡單類型自動綁定(訪問路徑:/user/simple?name=李四)
@GetMapping("/simple")
public String simpleParam(String name) {
    return "姓名:" + name;
}
// 2. POJO自動綁定(訪問路徑:/user/pojo?name=李四&age=22)
@GetMapping("/pojo")
public String pojoParam(UserDTO userDTO) {
    return "姓名:" + userDTO.getName() + ",年齡:" + userDTO.getAge();
}
  • 關(guān)鍵說明:僅適用于 URL 參數(shù) / 表單參數(shù)(application/x-www-form-urlencoded),無法綁定 JSON 請求體。

總結(jié)

  1. @PathVariable:綁定 URL 路徑中的動態(tài)參數(shù)(RESTful 接口核心);
  2. @RequestParam:綁定 URL 查詢參數(shù)(?key=value),支持必傳 / 默認(rèn)值配置;
  3. @RequestBody:綁定 JSON 請求體到 POJO(POST/PUT 傳遞復(fù)雜數(shù)據(jù));
  4. @RequestHeader/@CookieValue:分別綁定請求頭、Cookie 中的參數(shù);
  5. 無注解自動綁定:適用于簡單 URL / 表單參數(shù),無需額外注解。

核心原則:根據(jù)參數(shù)位置(路徑、查詢、請求體、請求頭)選擇對應(yīng)注解,復(fù)雜數(shù)據(jù)用@RequestBody,簡單篩選用@RequestParam,RESTful 資源標(biāo)識用@PathVariable。

到此這篇關(guān)于SpringBoot 中處理接口傳參時常用的注解的文章就介紹到這了,更多相關(guān)SpringBoot 接口傳參常用注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java?中如何使用?stream?流

    Java?中如何使用?stream?流

    這篇文章主要介紹了Java中如何使用stream流,文章圍繞Stream?API支持的許多操作展開主題,感興趣的小伙伴可以參考一下
    2022-09-09
  • Java IO之序列化與反序列化詳解

    Java IO之序列化與反序列化詳解

    這篇文章主要為大家介紹了Java IO之序列化與反序列化,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Spring Boot項目打包指定包名實現(xiàn)示例

    Spring Boot項目打包指定包名實現(xiàn)示例

    這篇文章主要為大家介紹了Spring Boot項目打包指定包名實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • java實現(xiàn)入棧push和出棧pop過程

    java實現(xiàn)入棧push和出棧pop過程

    文章詳細(xì)介紹了棧的概念、特點以及如何使用數(shù)組和鏈表實現(xiàn)棧,通過入棧(push)和出棧(pop)操作,展示了棧的數(shù)據(jù)處理過程,并提供了具體的代碼實現(xiàn)
    2024-12-12
  • java之swing單選框用法實例分析

    java之swing單選框用法實例分析

    這篇文章主要介紹了java之swing單選框用法,以實例形式分析了swing圖形界面單選框的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • spring的事務(wù)傳播屬性REQUIRED_NESTED原理

    spring的事務(wù)傳播屬性REQUIRED_NESTED原理

    這篇文章主要介紹了spring的事務(wù)傳播屬性REQUIRED_NESTED原理,在spring中,要想使用事務(wù)中的回滾點,可以使用傳播屬性NESTED,需要的朋友可以參考下
    2023-05-05
  • 一篇文章徹底搞懂macOS如何決定java環(huán)境

    一篇文章徹底搞懂macOS如何決定java環(huán)境

    MacOS作為一個功能強大的操作系統(tǒng),為開發(fā)者提供了豐富的開發(fā)工具和框架,下面這篇文章主要介紹了macOS如何決定java環(huán)境的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-09-09
  • SpringCache緩存處理詳解

    SpringCache緩存處理詳解

    這篇文章主要介紹了SpringCache緩存處理詳解,SpringCache是一個框架,實現(xiàn)了基于注解緩存功能,只需要簡單地加一個注解,就能實現(xiàn)緩存功能,需要的朋友可以參考下
    2023-09-09
  • java排序去重示例分享

    java排序去重示例分享

    這篇文章主要介紹了java排序去重示例,對String strs = "ZZZ BBB AAA OOO ZZZ AAA ZZZ"計算出現(xiàn)個數(shù),排序去重,需要的朋友可以參考下
    2014-02-02
  • Java實現(xiàn)在線聊天室(層層遞進)

    Java實現(xiàn)在線聊天室(層層遞進)

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)在線聊天室,層層遞進,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09

最新評論

利辛县| 华容县| 腾冲县| 清丰县| 衡南县| 天柱县| 麻江县| 东台市| 蒙山县| 吴川市| 咸宁市| 湛江市| 上饶县| 郴州市| 永修县| 惠安县| 丰县| 盖州市| 沧州市| 石泉县| 海南省| 广德县| 二手房| 通道| 乡城县| 樟树市| 海伦市| 天水市| 安塞县| 祁门县| 叶城县| 当阳市| 孟连| 汉寿县| 城固县| 修水县| 平山县| 炉霍县| 阜新市| 十堰市| 墨江|