我想创建新的RESTful应用程序。我对使用spring + jersey可以做到的框架感到有点困惑,但是我可以单独使用运动衫做同样的应用吗?
SpringREST与球衣的主要区别是什么? 哪个更方便?为什么呢?
答案 0 :(得分:2)
我已经使用了两个框架。 Spring是一个覆盖许多领域的大型框架/ API,其中一个是休息服务。另一方面,泽西只是为了休息。它是JAX-RS API(JSR 311& JSR 339)的参考实现。
这基本上是在Java中休息的“标准”方式。还有其他实现,如RestEasy。从理论上讲,您的代码只需要引用通用的JAX-RS接口,这意味着您应该能够在以后需要时交换到不同的实现。这显然只有在您不依赖于不属于JAX-RS标准的定制功能时才有效。
如果你使用泽西岛,你可能仍然认为你想要春天。它仅对其依赖注入有用。在这种情况下,您可能有一个JAX-RS类处理休息请求,然后调用已注入的spring服务。这实际上就是我在编写rest API的方法。
是否应该使用spring编写其余服务或JAX-RS是主观的,真的由你自己决定。我个人使用标准的JAX-RS API,因为我发现它更专注于休息。 spring rest方法基本上是spring-mvc的扩展,最初用于JSP。我发现使用JAX-RS比使用spring-mvc更容易进行错误处理。那说别人可能会乞求不同。另一个好处是,从理论上遵循标准,如果您想切换到不同的提供商,您将来会有更大的灵活性。
答案 1 :(得分:1)
主要区别在于Jersey是基于标准的,而Spring MVC则不是,如果这对您很重要。两者都非常好。
我在Jersey(我使用1.x)中发现的主要优点是它可以自动使用Jackson JSON Views,而Spring MVC则不能。此外,Spring MVC中的错误处理有点令人恼火,因为错误页面默认为标准HTML。
你还没有列出另一个项目,那就是Spring Data + Spring HATEOAS,它更新,但看起来还不错。