2 回答

TA贡献1875条经验 获得超3个赞
考虑到附加的组件图,我建议研究微服务架构。您将能够按域(电影、客户、评论)分离职责,甚至建立单独的访问规则(例如,电影目录的匿名访问和对客户数据的安全访问)。每个数据存储(DB1、DB2 等)将仅链接到负责的服务。此外,您将能够根据使用情况准确扩展必要的服务,例如 5 种电影服务、2 种客户数据服务和 3 种评论服务。
Gradle 或 Maven 将允许您轻松构建具有多个子模块的大型项目。您的一些模块将是应用程序模块,其中一些将是共享模块(模型、实用程序等)。
此外,我建议为每个项目设置一个单独的 repo,以简化变更管理和审查——这在大规模上将非常有帮助。
示例 Gradle 结构:
根模块
楷模
实用程序
电影服务
客户服务
审查服务
每个服务子模块都将包含自己的 @SpringBootApplication 以及控制器、服务和存储库。当然,您需要将 Spring Boot Gradle 插件添加到每个服务子模块。
更新: 展望未来,将 Docker 配置添加到每个服务子模块并将每个应用程序作为 Docker 容器运行是明智的。Docker 将大大简化开发。

TA贡献1850条经验 获得超11个赞
如果你能做这样的事情,那将是模棱两可的。例如,当您调用 localhost:8080/app -> 哪个控制器应该响应?也许您需要实现一个调度程序,其中包含一些应该调用哪些控制器的标准。我不明白这种分离有什么好处。您可以将您的应用程序划分为库并将它们添加为依赖项。
添加回答
举报