java - DTO - 多项服务和冗余 DTO

标签 java spring-boot microservices

我们使用 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 之后,您可以开发一个包含其客户端所需的 DTOC 服务库

要从 C 服务使用 API,A 和 B 需要导入 C 服务库 并调用 (new CService()).getSomething()

关于java - DTO - 多项服务和冗余 DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55802876/

相关文章:

java - RDF/XML Jena getValue

java - 在 `spring-boot-starter-undertow`中提供了运行时 `build.gradle`,但 `:bootRun`仍使用Tomcat而不是undertow

java - 如何在其他模块中使用 gradle 子模块作为库?

java - windows上CTRL+C任务查杀的等效代码是什么?

java - 优化图片显示

Spring Boot - 测试 - bean 的拆卸

java - 我应该如何使用异步通信实现 GET 端点?

spring-boot - 无法通过 VPN 通过计算机名称访问 Rest Endpoint

java - 尝试使用 "getNextAlarmClock()"获取下一个闹钟时间,但没有得到正确的答案

java - Maven - Spring Boot Starter 的版本