【问题标题】:Multiple Web Applications in spring boot projectspring boot项目中的多个Web应用程序
【发布时间】:2016-05-22 22:51:11
【问题描述】:

使用 spring 4 和 maven,我习惯于创建分层应用程序,其中子项目编译成 jar,根项目编译成 war。例

  Web Layer
      |
Service Layer
      |
  Dao Layer

(Shared Common Project)

使用这种架构,我还可以创建 2 个具有共同父 pom 并共享相同子项目的 Web 应用程序

  Web Layer      Admin Web Layer
         \        /
             |
        Service Layer
             |
          Dao Layer

(Shared Common Project)

是否可以在 Spring Boot 中实现相同的功能?我不想合并 2 个 Web 项目。它们服务于完全不同的目的。他们有不同的登录机制、不同的用户、不同的角色等。

澄清

如果我使用 spring 4 和 maven 构建这个应用程序,那么 Web 应用程序将被编译成 2 个战争。然后它们可以在同一端口上的单个服务器上运行。我正在尝试将此配置与 spring boot 匹配,但由于 spring-boot 嵌入了 tomcat,我不确定这两个应用程序如何在同一个实例上运行。

【问题讨论】:

  • 这样做有什么意义?
  • 它们是 2 个不同的 Web 应用程序,它们共享许多相同的服务,但在视图和安全性方面却一无所获。
  • Spring Boot 中没有任何东西可以阻止您执行您所描述的操作。听起来您需要两个独立的 Spring Boot 应用程序,它们依赖于公共子项目。
  • 是的,这就是我想弄清楚的方法。我找不到任何例子。另外,我不确定如何同时运行这两个应用程序。
  • 或者创建3个spring boot应用。一种将您的服务公开为 REST 端点,您可以在其上构建 2 个其他应用程序,即 Web 和管理应用程序。

标签: spring maven spring-mvc spring-boot


【解决方案1】:

步骤:

  1. 为服务层创建一个单独的项目模块。

  2. 为 DAO 层创建一个单独的项目模块。

  3. 为Web层创建一个SPRING BOOT APP,Web层依赖于Service层和DAO层。

  4. 为Admin Web Layer创建一个SPRING BOOT APP,Admin Web Layer依赖于Service Layer和DAO Layer。

通过这种设计,您将能够分别且不同地运行 Web 层和管理 Web 层,但同时使用公共服务和 dao 层。

【讨论】:

  • 如何同时运行它们?如果我在 web 模块上运行命令 mvn spring-boot:run,然后尝试在 admin 模块上再次运行它,我会不会因为端口已在使用中而出现错误?
  • 如果您有两个不同的 Spring Boot 应用程序并且有 application.properties 或 application.yml。在 server.port = 8010 或您喜欢的任何端口定义此属性(尚未使用)。
  • 在我给出的示例中,Web 应用程序将使用 spring 4 和 maven 编译成 2 个 war。然后它们可以在同一端口的服务器上运行。我正在尝试匹配此配置。这就是我想弄清楚的方法,但是由于 spring-boot 嵌入了 tomcat,我不确定这两个应用程序如何在同一个实例上运行。
猜你喜欢
  • 2020-06-25
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
  • 2015-01-26
  • 2015-11-25
  • 2017-04-30
  • 2021-01-01
  • 1970-01-01
相关资源
最近更新 更多