1

我使用 SpringBoot 并且我有一些反应式 API(控制器调用一个服务,该服务调用基于 MongoReactiveRepositories 的存储库)

因为我不希望用户直接看到我的模型对象,所以我想要 DTO。

一个 DTO 可以基于多个模型的信息。

例如:给定两个模型项目

ItemA:
 infoA:String

ItemB:
 infoB:String

我想创建一个 DTO 项目

ObjectDTO:
 infoA: String
 infoB: List<ItemB>

在我的对象模型和 DTO 之间响应式映射数据的正确方法是什么?

4

1 回答 1

1

只需使用 Mono.zip( https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Mono.html#zip-reactor.core.publisher.Mono-reactor.core.publisher.Mono- java.util.function.BiFunction- ) 将 2 个结果合二为一。

return Mono.zip(repo1.getItemA(), repo2.getItemB(),
   (itemA, itemB) -> new ObjectDTO(itemA.getInfoA(), itemB.getInfoB())
);

返回 itemA 和 itemB 的方法当然应该返回 a Mono

于 2019-04-06T13:24:11.717 回答