如何通过 Spring webflux 流式传输 Mono<list<Object>>?

How to stream a Mono<list<Object>> through Spring webflux?

Spring webflux Json 流式传输不适用于转换为 Mono>

的 DAO 对象
  @GetMapping(value= "/resultMonoStream/{id}", produces = org.springframework.http.MediaType.APPLICATION_STREAM_JSON_VALUE)
             public ResponseEntity<Mono<List<ResultDao>>> getAllResultMonoStream() {
                    Flux<Result> result = resultService.getAllResult(id);
                    Mono<List<ResultDao>> response = result.map(entity-> entity.convertToFlatObject()).collect(Collectors.toList());
                return ResponseEntity.status(HttpStatus.OK).body(response);
            }

根据定义

  • 单声道为 1 值或无值。

  • Flux 可以包含 0 到 N 个值。

It only receives a single response

因为 Mono 是作为单个元素处理的。因此,根据定义,大多数情况下可以流式传输 1 个元素。