我正在尝试将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方法,看来它是一一发送的,因此是非阻塞的。
我认为这更像是一个嵌套的问题,但从根本上讲,我想知道如何确定是否做了一些阻碍。
谢谢!
答案 0 :(得分:1)
如果您显式调用block方法,或者使用标准的jdbc连接器连接到数据库,而不是使用Spring Data提供的类似reactMongo的反应式连接器,则您正在阻塞。 在您发布的摘要中,没有任何阻塞,但是要完全确保您应该查看clientService类的代码及其嵌套调用(例如,对存储库的访问)