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

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

來源:好特整理 | 時間:2024-05-23 11:55:17 | 閱讀:51 |  標簽: T Pi API Ri S in   | 分享到:

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

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

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

@RequestParam

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

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

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

@PathVariable

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

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

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

@MatrixVariable

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

比如:這個請求 /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

這也是最常用的一個注解,用于加載POST/PUT請求的復雜請求體(也叫:payload)。比如,客戶端需要提交一個復雜數(shù)據(jù)的時候,就要將這些數(shù)據(jù)放到請求體中,然后服務端用 @RequestBody 來加載請求體中的數(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 注解用來加載請求頭中的數(shù)據(jù),一般在業(yè)務系統(tǒng)中不太使用,但在基礎設施的建設中會比較常用,比如傳遞分布式系統(tǒng)的TraceID等。

用法也很簡單,假設我們將鑒權數(shù)據(jù)存在http請求頭中,那么就可以像下面這樣用 @RequestHeader 來加載請求頭中的 Authorization 參數(shù)。

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

@CookieValue

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

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

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

歡迎關注我的公眾號:程序猿DD。第一時間了解前沿行業(yè)消息、分享深度技術干貨、獲取優(yōu)質學習資源

小編推薦閱讀

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

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

游戲攻略

游戲禮包

游戲視頻

游戲下載

游戲活動

《RPG_Ri序章》是GameMaker'Child-Dream'制作的一款幻想廢土風RPG手游,完全免費的幻想廢土風RPG登場!元

相關視頻攻略

更多

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

掃二維碼進入好特網(wǎng)微信公眾號!

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

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