java - 将 spring boot 应用程序拆分为多个 Web 应用程序

标签 java spring spring-mvc spring-boot

我想将一个大型网络应用拆分成不同的部分。 在我的例子中,有一个网上商店、一个 api 服务,然后是主应用程序。

并且它们都应该共享一个域层。

我试图在不使用企业服务器的情况下重现耳朵布局,因此主应用程序将与共享域 jar 发生冲突,而管理应用程序将具有 contextPath/admin 并共享相同的 domain.jar .

从一开始,它们会部署在一起,但随着应用程序的增长,我会简单地开始将应用程序部署到它们自己的端口上,并使用 nginx 将它们粘合在一起。

我已经在这个演示 github 存储库中实现了大部分内容。

https://github.com/leon/springboot-multiproject

我的问题是: 如何将管理应用程序映射到主应用程序的子目录?

/admin <- 管理应用

/<- 主应用

当涉及到领域层时,我是否需要特别考虑?

参见 https://github.com/leon/springboot-multiproject/blob/master/src/main/java/se/radley/main/Application.java#L23

最佳答案

我想不出一种特别简单的方法来完全分离应用程序的各个部分。一种选择可能是创建两个 ApplicationContext 并启动两个 Tomcat 服务器,但它们显然需要在不同的端口上运行。

一开始我很想保持简单。您可以为您的“主”和“管理员”@Controllers 创建单独的 jar,一个用于您的域,并保留包含配置的应用程序 jar。组件扫描将与嵌套的 jar 一起工作,因此单个 DispatcherServlet 可以愉快地为 /admin/ Controller 提供服务。

要么,要么咬紧牙关,从一开始就分解您的应用程序。至少这样您会及早意识到任何架构问题。

关于java - 将 spring boot 应用程序拆分为多个 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25911850/

相关文章:

java - 使用 Spring Boot 将 header 参数反序列化为 POJO

java - Spring MVC 类型转换 : PropertyEditor or Converter?

java - 将 ArrayList<Custom Object> 保存到本地存储

java - 用 Java 读取键盘输入,单个字符

Java 无法使用双冒号运算符找到正确的重载方法

jquery - 按钮作为取消重定向到上一页

java - 使用 JPA 时多个数据源抛出错误

java - VLCJ Java Applet 不会加载

java - 如何避免 PostgreSQL 中的死锁

java - DB返回值是多个