Spring?Boot?Rest常用框架注解詳情簡(jiǎn)介
前言:
讓我們了解一下Spring Boot Rest框架注釋。它是如此簡(jiǎn)單和快速。在本文中,我將嘗試解釋Spring Boot Rest API的不同注釋。這些注釋是Spring Boot中REST API所必需的。
開始Spring Boot Rest的先決條件
最需要了解的是Spring容器或IOC。除此之外,還必須具備Java注釋的基本知識(shí)。因?yàn)镾pring Boot應(yīng)用程序充滿了注釋。最后但并非最不重要的一點(diǎn)是,應(yīng)該澄清REST的概念,至少是基本概念。例如GET、POST、PUT、DELETE和Request body和response、headers等。
在Spring Initializer創(chuàng)建Spring Boot項(xiàng)目
Spring Boot最棒的一點(diǎn)是它有一個(gè)web應(yīng)用程序用于入門。只需點(diǎn)擊幾個(gè)表單字段和按鈕,就可以準(zhǔn)備好初學(xué)者文件。這包括pom。包含所有必需依賴項(xiàng)的xml。只需轉(zhuǎn)到Spring Initializer:https://start.spring.io/
。如下面的屏幕截圖所示,填寫適當(dāng)?shù)臄?shù)據(jù)。然后單擊右上角的添加依賴項(xiàng)按鈕。鍵入并選擇Web。我還將為log和Pojo添加Lombok。
完成后,只需單擊generate按鈕,就會(huì)下載一個(gè)包含這些文件的zip文件(pom.xml)。將其解壓縮并在IDE中打開。我將使用IntelliJ IDEA。這個(gè)IDE幫助我利用各種功能提高工作效率。
Spring Boot注解
整個(gè)Spring Boot都依賴于注釋。對(duì)于不同的需求和過(guò)程,有各種注釋。其余部分有4-5個(gè)主要注釋。讓我們一個(gè)接一個(gè)地看它們,并將它們應(yīng)用到我們的示例中。
@RestController
類上使用了@RestController
注釋。它將類定義為Rest的控制器。這是一個(gè)RESTful版本的控制器,添加了ResponseBy
的組合。這樣,您的響應(yīng)就會(huì)自動(dòng)轉(zhuǎn)換為JSON、XML或任何已定義的響應(yīng)類型,而無(wú)需單獨(dú)使用ResponseBy
注釋。
@RestController public class ArticleRestController {}
其余的注釋在@RestController
類下使用。
@RequestMapping
用于將特定端點(diǎn)映射到函數(shù)或方法。這有助于定義端點(diǎn)的路徑、方法、響應(yīng)類型、請(qǐng)求類型等。
@RequestMapping(value = "/articles", method = RequestMethod.GET, produces = "application/json") public List<Article> getArticles() { }
在上面的示例中,值表示它映射到的路徑。例如,localhost:8080/articles。方法類型是GET,它生成“application/json
”作為響應(yīng)(不過(guò),這是默認(rèn)值,您可以跳過(guò)它)。
@RequestParam
URL中的查詢參數(shù),即?key=value&key1=value1
由@RequestParam
注釋獲取。這用于函數(shù)的參數(shù)。它有各種選項(xiàng),如required
、defaultValue
等。然后將查詢參數(shù)加載到指定的參數(shù)中。
@RequestMapping(value = "/article", method = RequestMethod.GET) public Article getArticleByName( @RequestParam(value = "articleName", required = true) String articleName ) {}
在上面的例子中,如果我們調(diào)用URL GET localhost/article?articleName=springboot,將在articleName參數(shù)中加載“springboot”。我已經(jīng)把reuired=true
,所以如果我們不傳遞articleName
,它將向用戶拋出一個(gè)錯(cuò)誤。
@PathVariable
有沒有想過(guò),在不傳遞查詢參數(shù)的情況下,服務(wù)器如何知道要加載哪篇文章?看看這篇文章的網(wǎng)址 post URL不包含查詢參數(shù),而是一個(gè)普通的斜杠分隔字符串。服務(wù)器在PathVariable
的幫助下讀取它,它看起來(lái)是這樣的,/article/{articleslaug}
。替換{articleSlug}
的任何字符串都將被視為PathVariable
。
@RequestMapping(value = "/article/{articleSlug}", method = RequestMethod.GET) public Article getArticle(@PathVariable("articleSlug") String articleSlug) {}
請(qǐng)記住,{articleSlug}
在RequestMapping
和PathVariable
中應(yīng)該是相同的(沒有{}
)。如果不匹配,則無(wú)法加載。
@RequestBody
對(duì)于POST或PUT方法,您不會(huì)通過(guò)URL獲取所有數(shù)據(jù),對(duì)嗎?這些方法有一個(gè)適當(dāng)?shù)恼?qǐng)求主體。RequestBody
注釋有助于將給定的請(qǐng)求正文自動(dòng)映射到參數(shù)。主要是JSON到POJO。
@RequestMapping(value = "/article", method = RequestMethod.POST) public Article createArticle(@RequestBody NewArticlePojo newArticle){}
請(qǐng)求主體將自動(dòng)映射到NewArticlePojo
類,并基于鍵填充字段。
REST方法的特定注釋
在上面的解釋中,您一定已經(jīng)看到我使用特定的方法編寫了RequestMapping
。但這太多余了。為了解決這個(gè)問(wèn)題,Spring Boot提供了預(yù)定義的方法映射。這些只是@RequestMapping
的擴(kuò)展。
@GetMapping
@GetMapping
用于將RequestMapping
替換為method=RequestMethod
。獲取參數(shù)。現(xiàn)在通過(guò)查看,我們知道這是一個(gè)GET請(qǐng)求。
@PostMapping和@PutMapping
PostMapping
是用method=RequestMethod
替換RequestMapping
。類似地,PutMapping
將用method=RequestMethod
替換RequestMethod.PUT
@DeleteMapping
DeleteMapping用method=RequestMethod
替換RequestMethod.DELETE
到此這篇關(guān)于Spring Boot Rest常用框架注解詳情簡(jiǎn)介的文章就介紹到這了,更多相關(guān)Spring Boot Rest解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)隨機(jī)抽取獎(jiǎng)品工具類
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)隨機(jī)抽取獎(jiǎng)品工具類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05java?Long類型轉(zhuǎn)為json后數(shù)據(jù)損失精度的處理方式
這篇文章主要介紹了java?Long類型轉(zhuǎn)為json后數(shù)據(jù)損失精度的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01Springboot使用RestTemplate調(diào)用第三方接口的操作代碼
這篇文章主要介紹了Springboot使用RestTemplate調(diào)用第三方接口,我只演示了最常使用的請(qǐng)求方式get、post的簡(jiǎn)單使用方法,當(dāng)然RestTemplate的功能還有很多,感興趣的朋友可以參考RestTemplate源碼2022-12-12JavaMap兩種遍歷方式keySet與entrySet詳解
這篇文章主要介紹了JavaMap兩種遍歷方式keySet與entrySet,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-03-03簡(jiǎn)單分析Java線程編程中ThreadLocal類的使用
這篇文章主要介紹了Java線程編程中ThreadLocal類的使用,包括使用其對(duì)共享變量的操作的分析,需要的朋友可以參考下2015-12-12Java實(shí)現(xiàn)自動(dòng)生成縮略圖片
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)自動(dòng)生成縮略圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04實(shí)戰(zhàn)分布式醫(yī)療掛號(hào)系統(tǒng)之設(shè)置微服務(wù)接口開發(fā)模塊
這篇文章主要為大家介紹了實(shí)戰(zhàn)分布式醫(yī)療掛號(hào)系統(tǒng)之接口開發(fā)醫(yī)院設(shè)置微服務(wù)模塊,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04