最新国产好看的视频,伊人天堂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 風格接口,獲取資源 ID、分類標識等。
  • 核心用法
@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;
    }
}
  • 關鍵說明:默認要求路徑變量名與方法參數(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 // 非必傳+默認值
    ) {
        return "姓名:" + name + ",年齡:" + age;
    }
}
  • 關鍵屬性
    • required:是否必傳,默認true(不傳會報錯);
    • defaultValue:參數(shù)未傳時的默認值(僅required=false時生效);
    • value:指定 URL 參數(shù)名(與方法參數(shù)名不一致時用)。

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

  • 核心作用:綁定 HTTP 請求體(通常是 JSON 格式)到 Java 對象(POJO)。
  • 使用場景:POST/PUT 請求,傳遞復雜數(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();
    }
}
  • 關鍵說明
    • 僅支持 POST/PUT 等有請求體的請求(GET 請求無請求體,用會報錯);
    • 前端需保證 Content-Type 為application/json,否則解析失敗;
    • 可搭配@Valid/@Validated做參數(shù)校驗(如@NotBlank(message = "姓名不能為空"))。

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

  • 核心作用:綁定 HTTP 請求頭中的參數(shù)(如 Token、Content-Type)。
  • 使用場景:獲取令牌(Token)、語言標識(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. 無注解(自動綁定)

  • 核心作用:當參數(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();
}
  • 關鍵說明:僅適用于 URL 參數(shù) / 表單參數(shù)(application/x-www-form-urlencoded),無法綁定 JSON 請求體。

總結(jié)

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

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

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

相關文章

  • 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過程

    文章詳細介紹了棧的概念、特點以及如何使用數(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的事務傳播屬性REQUIRED_NESTED原理

    spring的事務傳播屬性REQUIRED_NESTED原理

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

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

    MacOS作為一個功能強大的操作系統(tǒng),為開發(fā)者提供了豐富的開發(fā)工具和框架,下面這篇文章主要介紹了macOS如何決定java環(huán)境的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    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)在線聊天室(層層遞進)

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

最新評論

铅山县| 大石桥市| 平遥县| 朝阳区| 巨野县| 苏尼特右旗| 汾阳市| 积石山| 金华市| 庆云县| 常山县| 堆龙德庆县| 新化县| 交城县| 隆安县| 益阳市| 长白| 淮北市| 商南县| 芜湖县| 济源市| 乳山市| 昭平县| 炎陵县| 剑河县| 赤壁市| 宣化县| 井研县| 杭锦后旗| 郑州市| 无锡市| 保德县| 宁阳县| 云浮市| 霍山县| 文登市| 仁寿县| 婺源县| 上林县| 阜平县| 双流县|