使用Spring开发Java RESTful Web服务的7个理由
REST現(xiàn)在已成為開發(fā)Web服務的標準方法,涉及Java時,可以使用許多框架和庫,例如JAX-RS,Restlet,Jersey,RESTEasy,Apache CFX等,但是我鼓勵Java開發(fā)人員使用Spring框架來開發(fā)Java。開發(fā)RESTful Web服務。 但是,您可能會問, 為什么要使用Spring Framework在Java中開發(fā)RESTful Web服務? 有什么優(yōu)勢?為什么它比現(xiàn)有的其他框架和庫更好? 好吧,我認為使用Spring開發(fā)RESTful Web服務的最重要原因是,您可以利用自己的Spring MVC經(jīng)驗來開發(fā)RESTful Web服務。
這是最大的優(yōu)勢之一,即利用您在Spring MVC上的多年經(jīng)驗將您的應用程序公開為REST API。 另一個原因是Spring對開發(fā)RESTful Web服務提供了出色的支持 。
從Spring 3.0版開始,在最后幾個版本中,它對Spring MVC進行了許多增強,以提供一流的REST支持。 它提供了專用的注釋,例如@RestController和@ResponseStatus以使RESTful資源的開發(fā)在Spring 4.0中更加容易。
它還不僅幫助您創(chuàng)建RESTful Web服務,而且還提供了消耗REST資源的類,例如,您可以使用RestTemplate類消耗RESTful資源。
還有更多的實用程序類和批注,這些類和批注使Spring中的RESTful Web服務的開發(fā)更加輕松,無縫,我將在本文中分享其中的兩個,以證明我的觀點:使用Spring開發(fā)RESTful Web服務是正確的決定。
Spring如何支持RESTful Web服務?
正如我在第一段中告訴您的那樣,我們可以使用Spring MVC創(chuàng)建和使用RESTful Web服務。 現(xiàn)在,讓我們更詳細地了解這些支持,以便您可以充分利用它們,并快速開發(fā)您一直想要的RESTful服務。
1.在Spring MVC中,控制器可以處理對所有HTTP方法的請求,這是RESTful Web服務的基礎。 例如,您可以處理GET方法來執(zhí)行讀取操作,POST方法來創(chuàng)建資源,PUT方法來更新資源以及DELETE方法來從服務器中刪除資源。 從Spring 3.2開始,您還可以處理PATCH請求。
2.對于REST,數(shù)據(jù)的表示非常重要,這就是為什么Spring MVC允許您使用@ResponseBody批注和各種HttpMessgeConverter實現(xiàn)完全繞過基于View的呈現(xiàn)。
通過使用這兩者,您可以直接向客戶端發(fā)送響應,例如,客戶端所需的資源以及客戶端所需的格式。 在接下來的文章中,我將在此博客中寫有關@ResponseBody批注和HttpMessageConverter更多信息。
3. Spring 4.0發(fā)行版添加了專用的@RestController注釋,以使RESTful Web服務的開發(fā)更加容易。
如果使用@RestController而不是@Controller注釋控制器類,則Spring @RestController消息對話應用于控制器中的所有處理程序方法。
這意味著您不需要使用@ResponseBody注釋對每個方法進行注釋。 這也使您的代碼更加簡潔。 您可以在Spring的@Conroller和@RestController之間的差異中了解更多信息。
4. REST Web服務與普通Web應用程序之間的主要區(qū)別之一是,REST在URI本身中傳遞資源標識符數(shù)據(jù),例如/ messages / 101,而Web應用程序通常使用查詢參數(shù),例如/ messages?Id = 101。
如果您還記得的話,我們使用@RequestParam來獲取那些查詢參數(shù)的值,但是不用擔心,Spring MVC還提供了一個@PathVariable批注,可以從URL提取數(shù)據(jù)。 它允許控制器處理對參數(shù)化URL的請求。
您可以在Spring的@RequestParam和@PathVaraible之間的區(qū)別中了解有關@PathVariable更多信息。
5. RESTful Web服務的另一個關鍵方面是表示形式,例如,同一資源可以以不同的格式表示,例如JSON,XML,HTML等。值得慶幸的是,Spring提供了幾種視圖實現(xiàn)和視圖解析器,以將數(shù)據(jù)呈現(xiàn)為JSON,XML和HTML。
例如, ContentNegotiatingViewResolver可以查看請求的文件擴展名或Accept標頭,以查找客戶端資源的正確表示形式。
6.與@ResponseBody批注類似, 該批注用于將響應轉換為客戶端所需的格式(通過使用HttpMessageConverts ),Spring MVC還提供了@RequestBody批注,該批注使用HTtpMethodConverter實現(xiàn)將入站HTTP數(shù)據(jù)轉換為傳遞給控制器??的Java對象。處理程序方法。
7. Spring Framework還提供了一個Template類RestTemplate ,類似于JdbcTemplate和JmsTemplate ,它們可以消耗REST資源。 您可以使用此類測試RESTful Web服務或開發(fā)REST客戶端。
我已經(jīng)在較早的博客文章中討論過此類,并且您可以在本教程中看到有關使用RestTemplate從Java中的RESTful Web服務使用JSON的實時示例。
這些是Spring MVC框架的一些重要功能,可幫助開發(fā)RESTful Web服務。 正如我告訴我選擇Spring來開發(fā)RESTful資源的最重要的原因是,我可以利用現(xiàn)有的框架知識,這意味著學習曲線并不困難。 如果從高層次看,開發(fā)RESTful服務與開發(fā)Web應用程序并沒有太大區(qū)別。
根本的區(qū)別是,在前者的情況下,我們主要與人類用戶打交道,而在REST的情況下,您必須與非人類用戶打交道,主要是豐富JavaScript客戶端和移動應用程序。 然后,此關鍵差異得出其他差異,例如,以JSON或XML而不是HTML表示數(shù)據(jù),這適合人類用戶,但不適用于非人類系統(tǒng)。
您可能喜歡的其他Spring和REST資源 :
Java中的Restlet,Jersey和RESTEasy之間的區(qū)別?
Spring MVC中DispatcherServlet的用途是什么?
如何在Java Web應用程序中啟用Spring安全性?
感謝您閱讀本文,如果您喜歡這些使用Spring開發(fā)RESTful Web服務的原因,請與您的朋友和同事分享。 如果您有任何問題或反饋,請留下筆記。
翻譯自: https://www.javacodegeeks.com/2018/01/7-reasons-use-spring-develop-restful-web-services-java.html
總結
以上是生活随笔為你收集整理的使用Spring开发Java RESTful Web服务的7个理由的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring 4.3.x_如何在Spri
- 下一篇: 酷我音乐官网电脑版(酷我音乐正式版)