日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

使用Spring开发Java RESTful Web服务的7个理由

發(fā)布時(shí)間:2023/12/3 java 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Spring开发Java RESTful Web服务的7个理由 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

REST現(xiàn)在已成為開發(fā)Web服務(wù)的標(biāo)準(zhǔn)方法,涉及Java時(shí),可以使用許多框架和庫,例如JAX-RS,Restlet,Jersey,RESTEasy,Apache CFX等,但是我鼓勵(lì)Java開發(fā)人員使用Spring框架來開發(fā)Java。開發(fā)RESTful Web服務(wù)。 但是,您可能會問, 為什么要使用Spring Framework在Java中開發(fā)RESTful Web服務(wù)? 有什么優(yōu)勢?為什么它比現(xiàn)有的其他框架和庫更好? 好吧,我認(rèn)為使用Spring開發(fā)RESTful Web服務(wù)的最重要原因是,您可以利用自己的Spring MVC經(jīng)驗(yàn)來開發(fā)RESTful Web服務(wù)。

這是最大的優(yōu)勢之一,即利用您在Spring MVC上的多年經(jīng)驗(yàn)將您的應(yīng)用程序公開為REST API。 另一個(gè)原因是Spring對開發(fā)RESTful Web服務(wù)提供了出色的支持 。

從Spring 3.0版開始,在最后幾個(gè)版本中,它對Spring MVC進(jìn)行了許多增強(qiáng),以提供一流的REST支持。 它提供了專用的注釋,例如@RestController和@ResponseStatus以使RESTful資源的開發(fā)在Spring 4.0中更加容易。

它還不僅幫助您創(chuàng)建RESTful Web服務(wù),而且還提供了消耗REST資源的類,例如,您可以使用RestTemplate類消耗RESTful資源。

還有更多的實(shí)用程序類和批注,這些類和批注使Spring中的RESTful Web服務(wù)的開發(fā)更加輕松,無縫,我將在本文中分享其中的兩個(gè),以證明我的觀點(diǎn):使用Spring開發(fā)RESTful Web服務(wù)是正確的決定。

Spring如何支持RESTful Web服務(wù)?

正如我在第一段中告訴您的那樣,我們可以使用Spring MVC創(chuàng)建和使用RESTful Web服務(wù)。 現(xiàn)在,讓我們更詳細(xì)地了解這些支持,以便您可以充分利用它們,并快速開發(fā)您一直想要的RESTful服務(wù)。

1.在Spring MVC中,控制器可以處理對所有HTTP方法的請求,這是RESTful Web服務(wù)的基礎(chǔ)。 例如,您可以處理GET方法來執(zhí)行讀取操作,POST方法來創(chuàng)建資源,PUT方法來更新資源以及DELETE方法來從服務(wù)器中刪除資源。 從Spring 3.2開始,您還可以處理PATCH請求。
2.對于REST,數(shù)據(jù)的表示非常重要,這就是為什么Spring MVC允許您使用@ResponseBody批注和各種HttpMessgeConverter實(shí)現(xiàn)完全繞過基于View的呈現(xiàn)。

通過使用這兩者,您可以直接向客戶端發(fā)送響應(yīng),例如,客戶端所需的資源以及客戶端所需的格式。 在接下來的文章中,我將在此博客中寫有關(guān)@ResponseBody批注和HttpMessageConverter更多信息。

3. Spring 4.0發(fā)行版添加了專用的@RestController注釋,以使RESTful Web服務(wù)的開發(fā)更加容易。

如果使用@RestController而不是@Controller注釋控制器類,則Spring @RestController消息對話應(yīng)用于控制器中的所有處理程序方法。

這意味著您不需要使用@ResponseBody注釋對每個(gè)方法進(jìn)行注釋。 這也使您的代碼更加簡潔。 您可以在Spring的@Conroller和@RestController之間的差異中了解更多信息。

4. REST Web服務(wù)與普通Web應(yīng)用程序之間的主要區(qū)別之一是,REST在URI本身中傳遞資源標(biāo)識符數(shù)據(jù),例如/ messages / 101,而Web應(yīng)用程序通常使用查詢參數(shù),例如/ messages?Id = 101。

如果您還記得的話,我們使用@RequestParam來獲取那些查詢參數(shù)的值,但是不用擔(dān)心,Spring MVC還提供了一個(gè)@PathVariable批注,可以從URL提取數(shù)據(jù)。 它允許控制器處理對參數(shù)化URL的請求。

您可以在Spring的@RequestParam和@PathVaraible之間的區(qū)別中了解有關(guān)@PathVariable更多信息。

5. RESTful Web服務(wù)的另一個(gè)關(guān)鍵方面是表示形式,例如,同一資源可以以不同的格式表示,例如JSON,XML,HTML等。值得慶幸的是,Spring提供了幾種視圖實(shí)現(xiàn)和視圖解析器,以將數(shù)據(jù)呈現(xiàn)為JSON,XML和HTML。

例如, ContentNegotiatingViewResolver可以查看請求的文件擴(kuò)展名或Accept標(biāo)頭,以查找客戶端資源的正確表示形式。

6.與@ResponseBody批注類似, 該批注用于將響應(yīng)轉(zhuǎn)換為客戶端所需的格式(通過使用HttpMessageConverts ),Spring MVC還提供了@RequestBody批注,該批注使用HTtpMethodConverter實(shí)現(xiàn)將入站HTTP數(shù)據(jù)轉(zhuǎn)換為傳遞給控制器??的Java對象。處理程序方法。

7. Spring Framework還提供了一個(gè)Template類RestTemplate ,類似于JdbcTemplate和JmsTemplate ,它們可以消耗REST資源。 您可以使用此類測試RESTful Web服務(wù)或開發(fā)REST客戶端。

我已經(jīng)在較早的博客文章中討論過此類,并且您可以在本教程中看到有關(guān)使用RestTemplate從Java中的RESTful Web服務(wù)使用JSON的實(shí)時(shí)示例。

這些是Spring MVC框架的一些重要功能,可幫助開發(fā)RESTful Web服務(wù)。 正如我告訴我選擇Spring來開發(fā)RESTful資源的最重要的原因是,我可以利用現(xiàn)有的框架知識,這意味著學(xué)習(xí)曲線并不困難。 如果從高層次看,開發(fā)RESTful服務(wù)與開發(fā)Web應(yīng)用程序并沒有太大區(qū)別。

根本的區(qū)別是,在前者的情況下,我們主要與人類用戶打交道,而在REST的情況下,您必須與非人類用戶打交道,主要是豐富JavaScript客戶端和移動(dòng)應(yīng)用程序。 然后,此關(guān)鍵差異得出其他差異,例如,以JSON或XML而不是HTML表示數(shù)據(jù),這適合人類用戶,但不適用于非人類系統(tǒng)。
您可能喜歡的其他Spring和REST資源 :

Java中的Restlet,Jersey和RESTEasy之間的區(qū)別?

Spring MVC中DispatcherServlet的用途是什么?

如何在Java Web應(yīng)用程序中啟用Spring安全性?

感謝您閱讀本文,如果您喜歡這些使用Spring開發(fā)RESTful Web服務(wù)的原因,請與您的朋友和同事分享。 如果您有任何問題或反饋,請留下筆記。

翻譯自: https://www.javacodegeeks.com/2018/01/7-reasons-use-spring-develop-restful-web-services-java.html

總結(jié)

以上是生活随笔為你收集整理的使用Spring开发Java RESTful Web服务的7个理由的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。