2016-02-11 35 views
4

我想要構建一個非常小的自包含微服務,用於將數據存儲在內存中的一些REST操作(不需要持久性)。Spring Boot vs. JAX-RS(Restlet)for dead simple microservice

因此,我正在尋找框架明智的最輕量級的方法。在研究可用的JAX-RS實現之後,Restlet似乎是一個不錯的選擇。

也得到了Spring Boot的推薦,評論你不需要JAX-RS。我有點困惑。 JAX-RS不是Java REST應用程序的標準嗎?我不需要將Spring Boot和JAX-RS結合起來嗎?

回答

7

他們是完全不同的野獸,他們都可以用自己的方式對你有用。

我會解釋:

春天開機完美支持REST服務。 春季啓動閃耀,因爲您可以在5-6行代碼中字面地創建休息服務。

春天開機時會:

  • 手柄Web容器(它的tomcat /碼頭嵌入,雖然你可能會選擇將被部署在外部,以及戰爭)

  • 處理所有的依賴關係(版本遵守和如此的力量)。它也意味着JSON操作框架,而不僅僅是聲明REST端點的方式。 Spring引導默認使用Jackson。

  • 處理包裝一切的麻煩。如果你使用WAR,它可能不那麼有趣(當然,在這種情況下,你將不得不考慮web容器和spring引導爲你做)。但你使用罐子 - 春季開機將創建一個大罐子,只需裝入java -jar <youjar>即可。

  • 可選地爲您的應用程序提供指標和JMX內容 - 只需聲明對執行器的Maven/Gradle依賴關係,即可開始使用。

這一切都使得春季啓動完善發展自足微服務,這可能是你的情況。

相反如果你正在尋找一個框架來爲現有解決方案提供休息,那麼可能你不會使用spring引導。也許你根本沒有使用彈簧,誰知道?

所以我會說,Jersey/Restlet等等只是Web框架,以便更容易地開發Java中的REST服務。 Spring引導更多的是管理你的應用程序,當然它也提供了一種使用REST服務的方式,就像它提供了一種使用JDBC,Servlet API等的方法一樣。

希望這有助於

0

JAX-RS是Java EE規範和應用服務器,實現Java EE規範標準的REST API的一部分。每個應用服務器通常都有它自己的實現,讓它成爲Wild,,澤西,眨眼等的RestEasy。
這並不意味着每個支持REST的Java框架都必須實現JAX-RS。也就是說,Restlet不是JAX-RS的實現,它是一個完全獨立的框架(Spring MVC具有其REST功能,Spring Boot默認使用該框架)。

您也可以使用JAX-RS for REST開發Spring Boot應用程序,Spring Boot爲Jersey提供啓動器POM,還可以自動配置以最大限度地減少您自己的配置工作量。

相關問題