【问题标题】:Creating a library jar using Spring boot使用 Spring Boot 创建库 jar
【发布时间】:2016-06-05 23:48:57
【问题描述】:

我创建了一个具有 REST Web 服务和 jpa 依赖项的 Spring Boot 应用程序。该应用程序作为独立应用程序独立运行。我正在尝试使用 vaadin 添加 UI 层作为使用来自 sring 启动项目的服务的单独项目。有没有一种简单的方法可以将 Spring Boot 应用程序制作为可以包含在其他项目中的库 jar。

我搜索了论坛,发现一些帖子建议不要使用 spring boot 而是使用 spring 框架来创建库。只是想检查是否有任何示例如何在 Spring boot 中完成。

【问题讨论】:

  • 这取决于您计划如何打包和部署它们,以及使用来自 Vaadin UI 的库、普通的旧 Java 方法调用或 REST 调用。我猜他们建议只使用 Spring,因为当使用 Boot 时,生成的工件将包含它的所有依赖项。无论哪种方式,我认为最简单的方法是使用 maven、gradle 或任何其他此类构建系统,它允许您以多种方式打包您的工件并支持分布式和版本化依赖项。例如:具有 2 个模块的 maven 项目,1 个用于库,1 个用于引用库的 UI。

标签: spring spring-boot vaadin


【解决方案1】:

如果您的意图是让 Vaadin从浏览器调用您创建的 REST API(这通常是 AngularJS 等客户端框架的情况),那么您就误解了 Vaadin。 Vaadin 应用程序在服务器端运行。

所以您可以做的是运行两台服务器,一台运行 Vaadin 应用程序,另一台调用运行您的 REST API。但是,如果不需要这种拆分,您可以将构成 REST API 的类用作直接从 Vaadin 应用程序代码调用的常规 Java API。

【讨论】:

    【解决方案2】:

    我的This project 你可能会感兴趣。我已经使用 Spring-Boot 制作了一个用于其他项目的库。

    这里要注意的主要是:

    @SpringBootApplication(scanBasePackages = {"me.ramswaroop.jbot", "example.jbot"})
    

    在您启动 spring-boot 应用程序的主类中。请参阅此main class 了解更多信息。但老实说,在我看来,使用 Spring-Boot 制作库以包含在其他项目中并不是一个好的选择。如果我要重写JBot,那么我肯定不会以这种方式使用 Spring-Boot。

    Spring-Boot 非常适合创建一个您可以“直接运行”的独立应用程序,但要创建一个库,嗯,不确定。我认为一个库应该尽可能少的依赖。

    【讨论】:

      【解决方案3】:

      就像 Morphic 所说,您需要决定是使用 Java 本地调用库方法还是设置 Web 服务。听起来您正在构建一个 REST API,在这种情况下,我不会费心将它作为一个库包含在内。我只需运行您的 Spring Boot 应用程序(java -jar myservice.jar,或 mvn spring:boot run),然后在 Spring Boot 为您的服务打开的任何端口上使用 HTTP REST 连接到它。

      如果您决定将 Spring Boot 应用程序作为库 jar 加载,那么您可能根本不需要 Spring Boot。您所需要的只是将您的服务方法和 Spring 配置打包为一个 jar,mvn 安装到您的本地 repo,然后只需在 vaadin 项目的 pom 文件中引用您的 jar(所有这些都假设您将它创建为一个 maven 项目)。

      【讨论】:

        猜你喜欢
        • 2018-05-23
        • 1970-01-01
        • 2018-02-23
        • 2019-03-26
        • 2021-02-27
        • 2018-09-10
        • 2019-05-19
        • 1970-01-01
        • 2019-05-04
        相关资源
        最近更新 更多