Spring Boot中的路徑變量示例詳解
在Spring Boot中,路徑變量(Path Variable)通過 @PathVariable 注解實(shí)現(xiàn)URL參數(shù)與方法參數(shù)的綁定,是構(gòu)建RESTful API的核心工具。
一. 基本用法與參數(shù)映射
1.路徑定義
在URL路徑中用 {} 包裹變量名,例如:
@GetMapping("/users/{userId}")2.參數(shù)綁定
- - 默認(rèn)映射:當(dāng)參數(shù)名與路徑變量名一致時(shí),可以省略路徑變量名 ,例如:
@GetMapping("/users/{userId}")
public User getUser(@PathVariable Long userId) {
// 業(yè)務(wù)邏輯
}- - 顯式指定:若參數(shù)名與變量名不同,通過 @PathVariable("變量名") 指定,例如:
@GetMapping("/users/{userId}")
public User getUserById(@PathVariable("userId") Long id) {
// 業(yè)務(wù)邏輯
}二.多參數(shù)接收
在方法中多次使用 @PathVariable 接收多個(gè)參數(shù),例如:
@GetMapping("/users/{userId}/orders/{orderId}")
public Order getOrder(
@PathVariable Long userId,
@PathVariable Long orderId) {
// 業(yè)務(wù)邏輯
}三、類型轉(zhuǎn)換
- - 自動(dòng)轉(zhuǎn)換:Spring Boot會(huì)自動(dòng)將路徑變量的字符串值轉(zhuǎn)換為方法參數(shù)的類型,支持基本數(shù)據(jù)類型(如 int 、 long )、包裝類(如 Integer 、 Long )、 String 等。
- - 異常處理:若類型轉(zhuǎn)換失敗,Spring Boot會(huì)拋出 TypeMismatchException 異常,可通過自定義異常處理器進(jìn)行處理。
四. 可選參數(shù)與默認(rèn)值
1.非必填參數(shù)
通過 @PathVariable(required = false) 設(shè)置參數(shù)為可選,未傳值時(shí)參數(shù)值為 null ,例如:
@GetMapping("/users/{id}/info")
public UserInfo getUserInfo(
@PathVariable("id") Long id,
@PathVariable(required = false) String type) {
// 業(yè)務(wù)邏輯
}2.默認(rèn)值設(shè)置
使用 @PathVariable(defaultValue = "默認(rèn)值") 指定默認(rèn)值,當(dāng)未傳值時(shí)使用該默認(rèn)值,例如:
@GetMapping("/page/{pageNum}")
public List<User> getUsers(
@PathVariable(defaultValue = "1") int pageNum) {
// 業(yè)務(wù)邏輯
}五. 正則表達(dá)式約束
通過 {變量名:正則表達(dá)式} 限制參數(shù)格式,例如:
@GetMapping("/images/{name:\\d{4}-\\d{2}-\\d{2}\\.jpg}")
// 匹配YYYY-MM-DD.jpg格式
public Image getImage(@PathVariable String name) {
// 業(yè)務(wù)邏輯
}六、總結(jié)
路徑變量是 Spring Boot 中構(gòu)建 RESTful API 的重要工具,通過 @PathVariable 注解實(shí)現(xiàn) URL 參數(shù)與方法參數(shù)的綁定。它支持多種功能,包括:?單個(gè)和多個(gè)路徑變量的接收。?自動(dòng)類型轉(zhuǎn)換和異常處理。?可選參數(shù)和默認(rèn)值的設(shè)置。?正則表達(dá)式約束,用于限制參數(shù)格式
到此這篇關(guān)于Spring Boot中的路徑變量的文章就介紹到這了,更多相關(guān)Spring Boot路徑變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Hibernate延遲加載原理與實(shí)現(xiàn)方法
這篇文章主要介紹了Hibernate延遲加載原理與實(shí)現(xiàn)方法,較為詳細(xì)的分析了Hibernate延遲加載的概念,原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-03-03
mybatis plus in使用時(shí)傳數(shù)組、集合的注意點(diǎn)說明
這篇文章主要介紹了mybatis plus in使用時(shí)傳數(shù)組、集合的注意點(diǎn)說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
將Springboot項(xiàng)目升級成Springcloud項(xiàng)目的圖文教程
本文主要介紹了將Springboot項(xiàng)目升級成Springcloud項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
SpringBoot3整合MyBatis出現(xiàn)異常:Property?'sqlSessionFactory&a
這篇文章主要介紹了SpringBoot3整合MyBatis報(bào)錯(cuò):Property?‘sqlSessionFactory‘?or?‘sqlSessionTemplate‘?are?required,其實(shí)不是個(gè)大問題,只是自己編碼時(shí)遇到了,然后總結(jié)總結(jié)分享一下,如果有遇到類似問題的,可以參考一下2022-11-11
SpringBoot項(xiàng)目如何修改Tomcat版本號(hào)
本文介紹了Spring Boot項(xiàng)目默認(rèn)使用內(nèi)嵌Tomcat Servlet容器打包部署,通過添加指定版本的Tomcat GA依賴,可以修改默認(rèn)版本號(hào),對于jar包和war包形式的部署,無需排除內(nèi)置Tomcat,此經(jīng)驗(yàn)為個(gè)人見解,僅供參考2026-04-04
類似Object監(jiān)視器方法的Condition接口(詳解)
下面小編就為大家?guī)硪黄愃芆bject監(jiān)視器方法的Condition接口(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05
SpringBoot2.x設(shè)置Session失效時(shí)間及失效跳轉(zhuǎn)方式
這篇文章主要介紹了SpringBoot2.x設(shè)置Session失效時(shí)間及失效跳轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
基于Java實(shí)現(xiàn)XML文件的解析與更新
配置文件可以有很多種格式,包括?INI、JSON、YAML?和?XML。每一種編程語言解析這些格式的方式都不同。本文將通過Java語言實(shí)現(xiàn)XML文件的解析與更新,需要的可以參考一下2022-03-03
SpringBoot整合EasyExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能
EasyExcel是一個(gè)基于Java的、快速、簡潔、解決大文件內(nèi)存溢出的Excel處理工具,他能讓你在不用考慮性能、內(nèi)存的等因素的情況下,快速完成Excel的讀、寫等功能,本文就給大家介紹一下SpringBoot整合EasyExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能的方法,需要的朋友可以參考下2023-09-09

