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

SpringBoot中的6種API請(qǐng)求參數(shù)讀取方式總結(jié)

 更新時(shí)間:2024年07月14日 09:04:05   作者:anbaojian  
使用Spring Boot開(kāi)發(fā)API的時(shí)候,讀取請(qǐng)求參數(shù)是服務(wù)端編碼中最基本的一項(xiàng)操作,Spring Boot中也提供了多種機(jī)制來(lái)滿足不同的API設(shè)計(jì)要求,通過(guò)本文,為大家總結(jié)6種常用的請(qǐng)求參數(shù)讀取方式,需要的朋友可以參考下

使用Spring Boot開(kāi)發(fā)API的時(shí)候,讀取請(qǐng)求參數(shù)是服務(wù)端編碼中最基本的一項(xiàng)操作,Spring Boot中也提供了多種機(jī)制來(lái)滿足不同的API設(shè)計(jì)要求。

接下來(lái),就通過(guò)本文,為大家總結(jié)6種常用的請(qǐng)求參數(shù)讀取方式。如果你發(fā)現(xiàn)自己知道的不到6種,那么趕緊來(lái)查漏補(bǔ)缺一下。如果你知道的不止6種,那么告訴大家,一起互相學(xué)習(xí)一下吧~

@RequestParam

這是最最最最最最常用的一個(gè)了吧,用來(lái)加載URL中?之后的參數(shù)。

比如:這個(gè)請(qǐng)求/user?name=didispace 就可以如下面這樣,使用@RequestParam來(lái)加載URL中的name參數(shù)

@GetMapping("/user")
@ResponseBody()
public User findUserByName(@RequestParam("name") String name){ 
    return userRepo.findByName(name);
}

@PathVariable

這是RESTful風(fēng)格API中常用的注解,用來(lái)加載URL路徑中的參數(shù)

比如:這個(gè)請(qǐng)求/user/1 就可以如下面這樣,使用@PathVariable來(lái)加載URL中的id參數(shù)

@GetMapping("/user/{id}")
@ResponseBody()
public User findUserById(@PathVariable("id") String id){ 
    return userRepo.findById(id);
}

@MatrixVariable

這個(gè)我們用的并不是很多,但一些國(guó)外系統(tǒng)有提供這類API參數(shù),這種API的參數(shù)通過(guò);分割。

比如:這個(gè)請(qǐng)求/books/reviews;isbn=1234;topN=5; 就可以如下面這樣,使用@MatrixVariable來(lái)加載URL中用;分割的參數(shù)

@GetMapping("/books/reviews")
@ResponseBody()
public List<BookReview> getBookReviews( 
  @MatrixVariable String isbn,  @MatrixVariable Integer topN) {
  return bookReviewsLogic.getTopNReviewsByIsbn(isbn, topN);
}

@RequestBody

這也是最常用的一個(gè)注解,用來(lái)加載POST/PUT請(qǐng)求的復(fù)雜請(qǐng)求體(也叫:payload)。比如,客戶端需要提交一個(gè)復(fù)雜數(shù)據(jù)的時(shí)候,就要將這些數(shù)據(jù)放到請(qǐng)求體中,然后服務(wù)端用@RequestBody來(lái)加載請(qǐng)求體中的數(shù)據(jù)

@PostMapping("/add")
public boolean addAccounts(@RequestBody List<Account> accounts) throws SQLException {
     accounts.stream().forEach(a -> {
         a.setCreatedOn(Timestamp.from(Instant.now()));
         a.setLastLogin(Timestamp.from(Instant.now()));
     });
     return notificationLogic.addAccounts(accounts);
}

@RequestHeader

@RequestHeader注解用來(lái)加載請(qǐng)求頭中的數(shù)據(jù),一般在業(yè)務(wù)系統(tǒng)中不太使用,但在基礎(chǔ)設(shè)施的建設(shè)中會(huì)比較常用,比如傳遞分布式系統(tǒng)的TraceID等。用法也很簡(jiǎn)單,比如,假設(shè)我們將鑒權(quán)數(shù)據(jù)存在http請(qǐng)求頭中,那么就可以像下面這樣用@RequestHeader來(lái)加載請(qǐng)求頭中的Authorization參數(shù)

@GetMapping("/user")
@ResponseBody()
public List<User> getUserList(@RequestHeader("Authorization") String authToken) {
     return userRepo.findAll();
}

@CookieValue

當(dāng)我們需要與客戶端保持有狀態(tài)的交互時(shí),就需要用到Cookie。此時(shí),服務(wù)端讀取Cookie數(shù)據(jù)的時(shí)候,就可以像下面這樣用@CookieValue來(lái)讀取Cookie中的SessionId數(shù)據(jù)

@GetMapping("/user")
@ResponseBody()
public List<User> getUserList(@CookieValue(name = "SessionId") String sessionId) {
     return userRepo.findAll();
}

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

相關(guān)文章

  • java實(shí)現(xiàn)一個(gè)桌球小游戲

    java實(shí)現(xiàn)一個(gè)桌球小游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)一個(gè)桌球小游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Java獲取當(dāng)?shù)氐娜粘鋈章鋾r(shí)間代碼分享

    Java獲取當(dāng)?shù)氐娜粘鋈章鋾r(shí)間代碼分享

    這篇文章主要介紹了Java獲取當(dāng)?shù)氐娜粘鋈章鋾r(shí)間代碼分享,國(guó)外猿友寫(xiě)的一個(gè)類,需要的朋友可以參考下
    2014-06-06
  • Spring的循環(huán)依賴、三級(jí)緩存解決方案源碼詳細(xì)解析

    Spring的循環(huán)依賴、三級(jí)緩存解決方案源碼詳細(xì)解析

    這篇文章主要介紹了Spring的循環(huán)依賴、三級(jí)緩存解決方案源碼詳細(xì)解析,在Spring中,由于IOC的控制反轉(zhuǎn),創(chuàng)建對(duì)象不再是簡(jiǎn)單的new出來(lái),而是交給Spring去創(chuàng)建,會(huì)經(jīng)歷一系列Bean的生命周期才創(chuàng)建出相應(yīng)的對(duì)象,需要的朋友可以參考下
    2024-01-01
  • springboot將lib和jar分離的操作方法

    springboot將lib和jar分離的操作方法

    本文介紹了如何通過(guò)優(yōu)化pom.xml配置來(lái)減小Spring Boot項(xiàng)目的jar包大小,主要通過(guò)使用spring-boot-maven-plugin和maven-dependency-plugin插件,將依賴庫(kù)打包到j(luò)ar中,并通過(guò)指定外部lib路徑的方式運(yùn)行jar,從而減小jar包體積,感興趣的朋友一起看看吧
    2025-02-02
  • Spring?AI借助全局參數(shù)實(shí)現(xiàn)智能數(shù)據(jù)庫(kù)操作與個(gè)性化待辦管理

    Spring?AI借助全局參數(shù)實(shí)現(xiàn)智能數(shù)據(jù)庫(kù)操作與個(gè)性化待辦管理

    這篇文章主要介紹了Spring?AI借助全局參數(shù)實(shí)現(xiàn)智能數(shù)據(jù)庫(kù)操作與個(gè)性化待辦管理,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-11-11
  • 學(xué)會(huì)在Java中使用Optional功能

    學(xué)會(huì)在Java中使用Optional功能

    這篇文章主要介紹了學(xué)會(huì)在Java中使用Optional功能,在本文中,我們將了解如何、何時(shí)以及在哪里最好地應(yīng)用Optional,具體相關(guān)內(nèi)容需要的朋友可以參考下面文章內(nèi)容
    2022-09-09
  • Java基礎(chǔ)知識(shí)精通注釋與數(shù)據(jù)類型及常量與變量

    Java基礎(chǔ)知識(shí)精通注釋與數(shù)據(jù)類型及常量與變量

    本文給大家介紹了Java的注釋與數(shù)據(jù)類型和常量變量,這些都是最基礎(chǔ)的知識(shí),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • Spring配置文件的超詳細(xì)圖文介紹

    Spring配置文件的超詳細(xì)圖文介紹

    Spring配置文件是一個(gè)或多個(gè)標(biāo)準(zhǔn)的XML文檔,下面這篇文章主要給大家介紹了關(guān)于Spring配置文件的超詳細(xì)圖文介紹,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Java Map遍歷2種實(shí)現(xiàn)方法代碼實(shí)例

    Java Map遍歷2種實(shí)現(xiàn)方法代碼實(shí)例

    這篇文章主要介紹了Java Map遍歷2種實(shí)現(xiàn)方法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • jar命令的用法詳解

    jar命令的用法詳解

    這篇文章主要介紹了jar命令的用法,非常實(shí)用,需要的朋友可以參考下
    2014-08-08

最新評(píng)論