Преобразование объектов документа в реактив DTO Spring - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь преобразовать объект документа, который извлекается 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 Ответ

1 голос
/ 02 июля 2019

Вы блокируете, если явно вызываете метод блокировки или если вы используете стандартный соединитель jdbc для подключения к базе данных вместо реактивного, такого как реактивныйMongo, предоставляемый Spring Data. В опубликованном вами сннипете нет никаких блокировок, но для полной уверенности вы должны просмотреть код вашего класса clientService и его вложенные вызовы (например, в хранилище)

...