多个Spring-Boot(Web)项目

时间:2017-04-03 15:51:23

标签: java maven spring-boot

我想将项目划分为组件;每个组件都有自己的数据,核心,Web exp>

  • 项目(Spring-Boot项目)
    • 组件(Spring-Boot项目)
      • 数据(Spring-Boot项目)
      • core(Spring-Boot项目)
      • web(Spring-Boot项目)

我是否可以应用此体系结构并在一个PORT上的嵌入式Tomcat服务器上运行整个项目?或者我是否必须使用微服务并在其PORT上运行每个组件(我想避免使用此解决方案)?

如果您愿意,可以提出类似的架构。

谢谢。

2 个答案:

答案 0 :(得分:4)

顾名思义,嵌入式tomcat意味着每个组件都有自己的tomcat,因此需要自己的端口。

在您的情况下,我将拥有可部署的Web部件(使用嵌入式tomcat),并将数据和核心部分视为要由Web部件导入的库(或根据需要)。

答案 1 :(得分:1)

Spring Boot为您提供了许多选择 - 适合您的选择取决于您的需求和偏好。

最典型的选择是建立一个"胖罐"包含与java -jar myservice.jar一起运行的嵌入式Web服务器。如果这样做,您部署的每个服务都需要自己的地址/端口组合。

您可以直接在主机上运行,​​也可以使用Docker,完整的虚拟机:适用于您的任何内容。

您当然可以使用像HaProxy或Nginx这样的代理将它们作为整合服务公开给消费者。

但是你也可以构建一个WAR,部署在你选择的servlet容器上。请参阅:https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html

一些容器通过对类路径的严厉管理使生活变得有点困难(我已经挣扎,但最终成功,在旧版本的WebLogic上)。但是,将三个Spring Boot WAR部署到同一个J2EE容器当然是可能的,当然如果你这样做,他们将共享一个服务器套接字,并拥有一个由容器控制的根路径。