【问题标题】:Spring Boot vs. JAX-RS (Restlet) for dead simple microservice [closed]Spring Boot 与 JAX-RS(Restlet)的简单微服务 [关闭]
【发布时间】:2016-05-22 01:58:07
【问题描述】:

我想构建一个非常小的自包含微服务,服务于一些 REST 操作,将数据存储在内存中(不需要持久性)。

因此,我正在寻找框架方面的最轻量级方法。在研究了可用的 JAX-RS 实现之后,Restlet 似乎是一个不错的选择。

还推荐了 Spring Boot,并带有您不需要 JAX-RS 的注释。我有点困惑。 JAX-RS 不是 Java REST 应用程序的标准吗?我不需要将 Spring Boot 与 JAX-RS 结合起来吗?

【问题讨论】:

    标签: java spring rest spring-mvc jax-rs


    【解决方案1】:

    它们是完全不同的野兽,它们都可以以各自的方式对你有用。

    我会解释:

    • Spring Boot 完美支持 Rest 服务。
    • Spring Boot 大放异彩,因为您可以在 5-6 行代码中创建一个休息服务。

    Spring Boot 将:

    • 处理 web 容器(它嵌入了 Tomcat/Jetty,尽管您也可以选择在外部部署战争)

    • 处理所有依赖项(版本合规性等)。它还意味着 JSON 操作框架,而不仅仅是声明 REST 端点的方式。 Spring Boot 默认使用 Jackson。

    • 处理包装所有物品的所有麻烦。如果您使用 WAR,它可能就没那么有趣了(当然,在这种情况下,您必须考虑 Web 容器,而 Spring Boot 会为您完成)。但是你使用 Jars - spring boot 将创建一个可以加载 java -jar <youjar> 的大 jar。

    • 可以选择为您的应用程序提供指标和 JMX 内容 - 只需声明对执行器的 Maven/Gradle 依赖项即可。

    所有这一切都使 Spring Boot 非常适合开发自包含微服务,这可能就是您的情况。

    相反,如果您正在寻找框架来为现有解决方案提供休息,那么您可能不会使用 Spring Boot。也许你根本没有使用 Spring,谁知道呢?

    所以我想说,Jersey/Restlet 等只是 Web 框架,用于更轻松地在 Java 中开发 REST 服务。而且 Spring Boot 更多的是管理你的应用程序,当然它也提供了一种使用 REST 服务的方式,就像它提供了一种使用 JDBC、Servlet API 等的方式一样。

    【讨论】:

      【解决方案2】:

      JAX-RS 是 Java EE 规范的一部分,也是应用服务器的标准 REST API,它实现了 Java EE 规范。每个应用程序服务器通常都有自己的实现,让它成为 Wildfly、Jersey、Wink 等的 RestEasy。
      这并不意味着每个支持 REST 的 Java 框架都必须实现 JAX-RS。也就是说,Restlet 不是 JAX-RS 实现,它是一个完全独立的框架(就像 Spring MVC 及其 REST 功能一样,Spring Boot 默认使用它)。

      您还可以使用 JAX-RS 为 REST 开发 Spring Boot 应用程序,Spring Boot 为 Jersey 提供启动 POM 以及自动配置以最大程度地减少您自己的配置工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-21
        • 1970-01-01
        • 2020-05-27
        • 1970-01-01
        • 2013-02-17
        • 1970-01-01
        • 1970-01-01
        • 2014-04-15
        相关资源
        最近更新 更多