将文档对象转换为 DTO spring 反应式

Convert document objects to DTO spring reactive

我正在尝试将 ReactiveCrudRepository 检索的文档对象作为 Flux<Client> 转换为 Flux<ClientDto>

现在我想出了一个方法来做到这一点,我不确定这是否阻塞:

public Mono<ServerResponse> findAll(final ServerRequest serverRequest) {
    final Flux<ClientDto> map = clientService.findAll().map(client -> modelMapper.map(client, ClientDto.class)) /*.delayElements(Duration.ofSeconds(10))*/;
    return ServerResponse.ok()
      .contentType(MediaType.TEXT_EVENT_STREAM)
      .body(map, ClientDto.class);
  }

我试过添加注释的 delayElements 方法,它似乎是一个一个地发送它们,所以是非阻塞的。

我认为这更像是一个嵌套问题,但核心是我想知道如何确定我是否进行了阻塞操作。

提前致谢!

如果您显式调用 block 方法,或者如果您使用标准 jdbc 连接器连接到数据库,而不是像 Spring Data 提供的 reactiveMongo 这样的反应式连接器,则您正在阻塞。 在您发布的 snnipet 中,没有任何阻塞,但要完全确定您应该查看 clientService class 的代码及其嵌套调用(例如对存储库的调用)