我想将一个大型网络应用拆分成不同的部分。 在我的例子中,有一个网上商店、一个 api 服务,然后是主应用程序。
并且它们都应该共享一个域层。
我试图在不使用企业服务器的情况下重现耳朵布局,因此主应用程序将与共享域 jar 发生冲突,而管理应用程序将具有 contextPath/admin 并共享相同的 domain.jar .
从一开始,它们会部署在一起,但随着应用程序的增长,我会简单地开始将应用程序部署到它们自己的端口上,并使用 nginx 将它们粘合在一起。
我已经在这个演示 github 存储库中实现了大部分内容。
https://github.com/leon/springboot-multiproject
我的问题是: 如何将管理应用程序映射到主应用程序的子目录?
/admin <- 管理应用
/<- 主应用
当涉及到领域层时,我是否需要特别考虑?
最佳答案
我想不出一种特别简单的方法来完全分离应用程序的各个部分。一种选择可能是创建两个 ApplicationContext 并启动两个 Tomcat 服务器,但它们显然需要在不同的端口上运行。
一开始我很想保持简单。您可以为您的“主”和“管理员”@Controllers
创建单独的 jar,一个用于您的域,并保留包含配置的应用程序 jar。组件扫描将与嵌套的 jar 一起工作,因此单个 DispatcherServlet
可以愉快地为 /admin
和 /
Controller 提供服务。
要么,要么咬紧牙关,从一开始就分解您的应用程序。至少这样您会及早意识到任何架构问题。
关于java - 将 spring boot 应用程序拆分为多个 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25911850/