如何通过 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 个元素。
Spring webflux Json 流式传输不适用于转换为 Mono>
@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 个元素。