咪免直播高品质美女在线视频互动社区_咪免直播官方版_咪免直播直播视频在线观看免费版下载

您的位置:首頁(yè) > 軟件教程 > 教程 > Spring Boot中常用的請(qǐng)求參數(shù)讀取方式

Spring Boot中常用的請(qǐng)求參數(shù)讀取方式

來源:好特整理 | 時(shí)間:2024-05-23 11:55:17 | 閱讀:158 |  標(biāo)簽: T Pi API Ri S in   | 分享到:

使用Spring Boot開發(fā)API的時(shí)候,讀取請(qǐng)求參數(shù)是服務(wù)端編碼中最基本的一項(xiàng)操作,Spring Boot中也提供了多種機(jī)制來滿足不同的API設(shè)計(jì)要求。 接下來,就通過本文,為大家總結(jié)6種常用的請(qǐng)求參數(shù)讀取方式。如果你發(fā)現(xiàn)自己知道的不到6種,那么趕緊來查漏補(bǔ)缺一下。如果你知道的不止6種,那么告訴

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

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

@RequestParam

這是最常用的一個(gè)注解,用于加載URL中 ? 之后的參數(shù)。

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

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

@PathVariable

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

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

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

@MatrixVariable

這個(gè)注解用于加載URL中用 ; 分割的參數(shù),雖然我們用的并不是很多,但一些國(guó)外系統(tǒng)有提供這類API參數(shù)。

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

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

@RequestBody

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

@PostMapping("/add")
public boolean addAccounts(@RequestBody List 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 注解用來加載請(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 來加載請(qǐng)求頭中的 Authorization 參數(shù)。

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

@CookieValue

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

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

好了,今天的分享就到這里。這些方式你都知道嗎?如果有學(xué)到新知識(shí),歡迎點(diǎn)贊支持。如果你還知道其他方式,也歡迎評(píng)論分享。如果您學(xué)習(xí)過程中如遇困難?可以加入我們超高質(zhì)量的Spring技術(shù)交流群,參與交流與討論,更好的學(xué)習(xí)與進(jìn)步!更多Spring Boot教程可以點(diǎn)擊直達(dá)!,歡迎收藏與轉(zhuǎn)發(fā)支持!

歡迎關(guān)注我的公眾號(hào):程序猿DD。第一時(shí)間了解前沿行業(yè)消息、分享深度技術(shù)干貨、獲取優(yōu)質(zhì)學(xué)習(xí)資源

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點(diǎn)或證實(shí)其描述。

RPG Ri序章 0.2.1
RPG Ri序章 0.2.1
類型:角色扮演  運(yùn)營(yíng)狀態(tài):正式運(yùn)營(yíng)  語(yǔ)言: 日文  

游戲攻略

游戲禮包

游戲視頻

游戲下載

游戲活動(dòng)

《RPG_Ri序章》是GameMaker'Child-Dream'制作的一款幻想廢土風(fēng)RPG手游,完全免費(fèi)的幻想廢土風(fēng)RPG登場(chǎng)!元

相關(guān)視頻攻略

更多

掃二維碼進(jìn)入好特網(wǎng)手機(jī)版本!

掃二維碼進(jìn)入好特網(wǎng)微信公眾號(hào)!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請(qǐng)發(fā)郵件[email protected]

湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2025 haote.com 好特網(wǎng)