2015-04-17 95 views
14

使用Spring mvc和Jersey Rest servlet容器之间是否存在任何折衷?泽西遵循Jax RS标准。当我学习Spring MVC时,或多或少看起来一样。在一些应用程序中,我发现人们使用jersey spring servlet。如果Spring(带处理程序映射的调度程序servlet)可以完成所有工作,那么Jersey的需求是什么?提前致谢。spring mvc和Jersey之间的区别

回答

12

Spring MVC是一个完整的Web前端框架,除了由Jersey提供的JSON/XML REST功能外,还包括对HTML和其他模板的支持以及其他功能。

Spring MVC是第一个,它有自己的做事方式。 JAX-RS被定义为基于注释的REST处理程序的标准,Jersey是该标准的一个实现。 (这与@Autowired和CDI非常相似)

我个人比较喜欢Spring MVC,因为我构建在Spring堆栈上,可以在我的JSON和HTML处理程序之间重用代码,但打算作为客户自己的一部分部署的组件如果使用JAX-RS,系统可能更加灵活。

6

就我个人而言,我认为这只是一个偏好问题,你从哪个角度看它。我会继续说,在做这个考虑时,在构建不同的层时,可以说在其他业务,持久层等层上还有一个额外的“REST层”。就像持久性实现可以被换出一样,REST实现也是如此。也就是说,虽然端点/控制器/资源类在实现方面看起来很相似,但(REST层的)其他特性完全不同。从Spring的角度来看,我认为那些对Spring很熟悉的人会选择保留MVC作为REST实现,因为它很熟悉

从泽西岛的角度来看,这是我认为大部分集成决策来的地方在;选择如何实现REST层下的图层。对于那个春天来说是一个可行的选择,因为它拥有丰富的生态系统。但作为Jersey用户,Jersey框架(对于REST实现)似乎更直观,但这完全是偏见。要一起使用Spring和Jersey,你可以看看Combining Spring project and Jersey

至于Jersey是一个JAX-RS实现,我不认为它是选择REST实现时的决定性因素,春天的视角。我真的没有看到它是一个很重要的因素。在Java EE环境中,确保您可以轻松地交换实现,但是当涉及到Spring集成时,并不那么容易,因为在将每个不同的JAX-RS实现与Spring集成时涉及到集成模块和配置。

相关问题