在使用Spring mvc和Jersey Rest servlet容器之间有什么权衡吗?Jersey遵循Jax RS标准。当我学习Spring mvc时,看起来大同小异。在一些应用程序中,我发现人们使用jersey spring servlet。如果spring (带处理程序映射的dispatcher servlet )可以完成所有工作,那么Jersey在这里的需求是什么?提前谢谢。
发布于 2015-04-17 03:24:35
Spring MVC是一个完整的Web前端框架,除了Jersey提供的JSON/XML REST功能外,还包括对HTML和其他模板的支持,以及其他功能。
Spring MVC是最早出现的,它有自己的方式。JAX-RS被定义为基于注释的REST处理程序的标准,Jersey是该标准的一个实现。(它与@Autowired
和CDI非常相似。)
我个人更喜欢Spring MVC,因为我是在Spring堆栈上构建的,并且可以在JSON和HTML处理程序之间重用代码,但是如果使用JAX-RS,打算部署为客户自己系统一部分的组件可能会更灵活。
发布于 2015-04-17 03:45:41
就我个人而言,我认为这只是一个偏好问题,以及你从什么角度来看待它。我会继续说,当考虑到这一点时,当构建不同的层时,您可以说在其他业务、持久性等层之上有一个额外的"REST层“。就像持久化实现可以换出一样,REST实现也可以。
也就是说,尽管端点/控制器/资源类在实现上看起来很相似,但( REST层的)其他功能的实现完全不同。从Spring的角度来看,我认为那些熟悉Spring的人会选择保留MVC作为REST实现,因为它很熟悉
从Jersey的角度来看,这是我认为大部分集成决策的用武之地;选择如何实现REST层以下的层。Spring是一个可行的选择,因为它有丰富的生态系统。但是作为Jersey用户,Jersey框架(对于REST实现)似乎更直观,但这完全是偏见。要同时使用Spring和Jersey,您可以查看Combining Spring project and Jersey
至于Jersey是一个JAX-RS实现,从Spring的角度来看,我不认为它是选择REST实现的决定性因素。我真的不认为这是一个很大的因素。在Java EE环境中,您当然可以很轻松地交换实现,但是当涉及到Spring集成时,就不那么容易了,因为将每个不同的JAX-RS实现与Spring集成都涉及到集成模块和配置。
https://stackoverflow.com/questions/29689436
复制相似问题