Spring MVC和Jersey的区别

15

在使用Spring MVC和Jersey Rest Servlet容器之间有没有任何取舍?Jersey遵循Jax RS标准。当我学习Spring MVC时,它看起来或多或少相同。在一些应用程序中,我发现人们使用Jersey Spring Servlet。如果Spring(具有处理程序映射的调度程序Servlet)可以完成所有工作,那么这里需要Jersey吗?提前致谢。

2个回答

13

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

Spring MVC是最先出现的,并且有自己的做事方式。JAX-RS被定义为基于注释的REST处理程序的标准,而Jersey是该标准的实现。(它非常类似于@Autowired和CDI。)

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


6
个人认为这只是个人喜好和从哪个角度看问题的问题。我会说,在构建不同层时,可以说在其他业务、持久化等层之上有一个额外的“REST层”。就像持久化实现可以被替换一样,REST实现也可以被替换。
话虽如此,尽管端点/控制器/资源类在实现上看起来相似,但REST层的其他特性实现完全不同。从Spring的角度来看,我认为那些熟悉Spring的人会选择将MVC作为REST实现,因为它很熟悉。
从Jersey的角度来看,这就是我认为大部分集成决策的地方;选择如何实现REST层下面的层。对于这一点,Spring是一个可行的选择,因为它有一个丰富的生态系统。但作为Jersey用户,Jersey框架(用于REST实现)似乎更加直观,但这完全是偏见。要同时使用Spring和Jersey,可以查看结合Spring项目和Jersey 就Jersey作为JAX-RS实现而言,从Spring的角度来看,我不认为这是选择REST实现的决定性因素。我真的不认为它是一个重要因素。在Java EE环境中,确实可以轻松地替换实现,但涉及到Spring集成时,情况并不那么简单,因为每个不同的JAX-RS实现与Spring集成都涉及到集成模块和配置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接