有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSpringMVC不是Jax-RS complient:这有风险吗?

我在网上读了很多比较泽西和春季MVC的帖子。 有一点似乎很有趣: Jersey遵循Jax RS标准,而Spring MVC则没有

我的问题是:既然我愿意在tomcat服务器上部署Java应用程序,那么不遵循Jax-RS标准有什么风险?是否存在性能问题

问候


共 (1) 个答案

  1. # 1 楼答案

    Spring不需要遵循JAX-RS,因为在创建标准之前,Spring已经有了自己的描述、注入和公开资源的方式。它们可能可以在上面实现对JAX-RS的支持,但其好处相当可疑,因为它们对底层系统有不同的期望,而且两者都可以同样好地部署在简单的servlet容器或成熟的JEE服务器上。此外,这样一个应用程序的客户端根本不在乎它背后是Spring还是Jersey或其他任何东西

    正如有人正确评论的那样,采用JAX-RS本身并不是一种优势。只有当周围的系统也是JEE时,例如,如果你计划广泛使用CDI,情况才会如此

    另一方面,如果相邻的系统中有Spring,那么其他部分显然也会使用Spring

    如果这个REST应用程序是唯一的东西,并且没有可与之集成的相邻系统,那么这两种选择都可以,没有充分的理由支持其中一种。我仍然支持春天,因为它的生态系统更加丰富,进化更快,但这只是我的观点

    JAX-RS的优点是容器本身支持JAX-RS,因此生成的应用程序会更小,因为它需要更少的依赖性。这在理论上是一件好事,但在历史上,由于专有配置的差异(如何定义数据源?),切换JEE服务器一直是个问题,提供的库版本(服务器提供了哪种JAX-RS实现?哪种版本?如果针对比服务器版本更新的版本进行编码会怎么样?)以及类加载策略(如果你在应用程序中打包了一个更新的lib版本,那么哪个版本会先加载,何时加载?)。虽然Spring应用程序更大,因为它们需要包含Spring Lib,但它们对上述问题更具弹性,因为你可以用Spring的方式做所有事情,所以下面哪个服务器就不那么有趣了。这听起来很傻,但标准的东西往往比非标准的东西更难移植。这当然只是我自己的经历,肯定会有人插话说另一个