我们使用 spring-boot 开发的应用程序遵循微服务架构。为了解释这个问题,让我们考虑 3 个不同的服务 A、B、C。服务 A 和 B 也使用服务 C 的一些 API。
我在项目 C(服务 C)中有一个 API 的 DTO。我的问题是——对于项目 A 和 B,我是否应该创建冗余的 DTO 类来使用服务 C API?或者我应该为 DTO 创建一个单独的 jar - 以便它可以在多个服务中重复使用?
如果您遇到过类似情况,您是如何处理的?
最佳答案
我认为这取决于一些特定的用例。
如果 DTO
是在项目的许多模块中使用的公共(public)类,则它应该包含在 common
模块中。
我认为还有另一种解决方案,您可以将服务 C 视为 API 服务(例如 Google Map API)。所以当你为你的客户提供服务时,你应该为你的客户提供一个图书馆。因此,在开发服务 C 之后,您可以开发一个包含其客户端所需的 DTO 的 C 服务库
。
要从 C 服务使用 API,A 和 B 需要导入 C 服务库
并调用 (new CService()).getSomething()
关于java - DTO - 多项服务和冗余 DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55802876/