春季mvc和泽西岛的区别

2022-09-03 14:05:13

使用Spring mvc和Jersey Rest servlet容器之间是否有任何权衡?泽西岛遵循Jax RS标准。当我学习Spring mvc时,或多或少看起来是一样的。在一些应用中,我发现人们使用球衣弹簧服务。如果spring(带有处理程序映射的调度程序servlet)可以完成所有工作,那么泽西岛在这里需要什么?提前致谢。


答案 1

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

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

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


答案 2

就个人而言,我认为这只是一个偏好问题,以及你从什么角度看待它。我接着说,在考虑这个问题时,在构建不同的层时,你可以说有一个额外的“REST层”,在其他业务层之上,持久性等层。就像持久性实现可以交换一样,REST实现也可以交换。

话虽如此,尽管端点/控制器/资源类在实现中看起来很相似,但(REST层)的其他功能的实现却完全不同。从Spring的角度来看,我认为那些对Spring感到满意的人会选择将MVC保留为REST实现,因为它很熟悉。

从泽西岛的角度来看,这是我认为大多数整合决策的用武之地。选择如何实现 REST 层下的层。对于那个春天来说,这将是一个可行的选择,因为它有一个丰富的生态系统。但作为泽西岛用户,泽西岛框架(用于REST实现)似乎更直观,但这完全是偏见。要同时使用春季和泽西岛,您可以查看结合春季项目和泽西岛

至于泽西岛是JAX-RS实现,从Spring的角度来看,我不认为它是选择REST实现的决定性因素。我真的不认为这是一个太大的因素。在Java EE环境中,当然你可以毫不费力地交换实现,但是当涉及Spring集成时,这并不容易,因为将每个不同的JAX-RS实现与Spring集成时都涉及集成模块和配置。