2013-10-04 82 views
2
  1. 我想創建新的RESTful應用程序。我對框架有點困惑,我可以用spring + jersey做到,但是我可以單獨使用球衣做同樣的應用嗎?創建java RESTful應用程序

  2. SpringREST和澤西島之間的主要區別是什麼? 哪個更方便?爲什麼?

回答

1

主要區別在於Jersey是基於標準的,而Spring MVC不是,如果這對您很重要。兩者都非常好。

我在Jersey(我使用1.x)中發現的主要優點是它可以自動自動使用Jackson JSON Views,而Spring MVC則無法自動使用。另外,Spring MVC中的錯誤處理有點令人煩惱,因爲錯誤頁面默認爲標準HTML。

還有另一個你沒有列出的項目,那就是Spring Data + Spring HATEOAS,它比較新,但看起來很不錯。

2

我已經使用了兩個框架。 Spring是一個涵蓋很多領域的大型框架/ API,其中之一就是休息服務。澤西島另一方面只是休息。它是JAX-RS API的參考實現(JSR 311 & JSR 339)。

這基本上是Java中休息的「標準」方式。還有其他的實現像RestEasy。從理論上講,您的代碼只需要引用常見的JAX-RS接口,這意味着如果需要,您應該能夠在以後交換到不同的實現。如果您不依賴於不屬於JAX-RS標準的定製功能,這顯然只適用。

如果你要使用澤西島,你可能仍然決定你想春天。僅僅依靠它的依賴注入是有用的。在這種情況下,您可能有一個JAX-RS類處理休息請求,然後調用已注入的彈簧服務。這實際上是我編寫其他API的方式。

是否應該使用spring來編寫其餘的服務,或者JAX-RS是主觀的,真的取決於你。就我個人而言,我使用標準的JAX-RS API,因爲我發現它更側重於休息。 spring rest方法基本上是spring-mvc的擴展,最初用於JSP。我發現使用JAX-RS比使用spring-mvc更容易處理錯誤。這就是說別人可能會乞求不同。另一個好處是遵循標準理論,如果您想切換到不同的提供商,您將來可以擁有更多的靈活性。