Java Spring 4 vs Jersey for REST web服务

Java Spring 4 vs Jersey for REST web服务,java,spring,web-services,rest,spring-mvc,Java,Spring,Web Services,Rest,Spring Mvc,我们计划用Spring4.0.6版本开发一个新的应用程序。我们使用可以返回“XML”或“JSON”的控制器。 在上一个项目中,我们使用JAX-RSAPI成功地实现了Jersey with Spring for REST支持,但是在阅读了一些文章和老年人的建议后,他们说Spring提供了非常好的REST支持 如果我在不使用JAX-RS和Jersey的情况下使用Spring REST支持,那么真正让我困惑的是: 如何在SpringMVC中进行封送和解封送 是否需要封送或解封送需要使用jax-rs 如

我们计划用Spring4.0.6版本开发一个新的应用程序。我们使用可以返回“XML”或“JSON”的控制器。 在上一个项目中,我们使用JAX-RSAPI成功地实现了Jersey with Spring for REST支持,但是在阅读了一些文章和老年人的建议后,他们说Spring提供了非常好的REST支持

如果我在不使用JAX-RS和Jersey的情况下使用Spring REST支持,那么真正让我困惑的是:

  • 如何在SpringMVC中进行封送和解封送

  • 是否需要封送或解封送需要使用jax-rs

  • 如果封送和解封送由spring自动处理,那么它如何知道xmlRootElements

  • 我仍然很困惑,如果春天证明了它对休息的很好的支持,那么为什么人们仍然穿着球衣休息呢? 真的想知道更多的细节

    如果我说错了什么,请忽略它。 举例说明真的很有帮助


    提前谢谢

    AFAIK Spring REST支持基于Spring MVC及其非JAX-RS实现,而Jersey已经实现了JAX-RS规范。 那些在项目中使用Spring(核心、AOP或MVC)的人选择SpringREST支持而不是JAX-RS实现者


    我推荐Jersey,因为它成熟、实现JAX-RS并且易于使用。

    我想说Jersey和Spring MVC都很棒——每个项目都有自己的风格和优势。无论如何,堆栈溢出不是进行主观比较的合适位置(您的问题很快就会被解决)。如果您已经将Spring用于其他所有功能,并且不需要使用JAX-RS,那么SpringMVC完全有意义

    关于(un)编组等特性,JAX-RS毕竟只是一个规范——其他库可以提供类似的特性,而无需实现相同的API

  • SpringMVC不是使用/writer来处理(取消)REST资源的编组。SpringMVC处理内容协商并为作业选择可用的最佳转换器(您可以对方法进行注释,以提示它们生成/使用的媒体类型)

  • 不,没有必要使用JAX-RS来(联合)整理资源。事实上,JAX-RS实现和SpringMVC使用第三方序列化库来完成这项工作;所以它与特定的标准无关

  • 在它的4.0.6版本中,Spring支持很多,Jackson支持JSON,JAXB支持XML,还有很多其他的。Spring 4.1.0添加了更多内容:

    • Jackson现在可用于JSON和XML
    • ,作为杰克逊的替代品
  • 为了回答最后一点,
    @XmlRootElement
    是JAXB注释,不是JAX-RS的一部分

    有关在Spring中使用REST的更完整的示例,请查看(您将在10-15分钟内得到一个完整的示例)


    同样,您问题的最后一部分是非常主观的-在JVM中构建REST服务有很多流行的解决方案,不仅仅是Jersey和Spring(Dropwizard、Play!Framework等)。

    感谢您的回答,没有使用jax-rs,Spring中是如何进行封送和解封的。是的,我同意您的看法。SpringWebMVC Rest不是那么容易使用。您需要注意的配置有很多。如果您使用(或想要使用)Spring boot,Jersey也是一个不错的选择。cf您可以使用库进行封送和解封送。它支持Java泛型和自定义对象。你建议某人在哪里问这样的问题?“你的问题会很快解决”!没那么快:)我喜欢stackoverflow,我也喜欢quora,我从来都不喜欢这种封闭式的主观问题策略,我也从来没有想过在quora中提出技术问题一个切线问题,我们能把Jersey和SpringRest放在同一个耳朵里吗,两者都为不同的服务集一起运行?@pramodc84:如果EAR有多个.WAR文件,那么是的,第一次战争可以有jersey,第二次战争可以使用Srping MVC,第三次战争可以使用DropWizard,等等