将文档对象转换为DTO Spring React

时间:2019-07-01 20:35:48

标签: spring blocking dto 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方法,看来它是一一发送的,因此是非阻塞的。

我认为这更像是一个嵌套的问题,但从根本上讲,我想知道如何确定是否做了一些阻碍。

谢谢!

1 个答案:

答案 0 :(得分:1)

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