- Mono 实现了 org.reactivestreams.Publisher 接口,代表0到1个元素的发布者
- Flux 同样实现了 org.reactivestreams.Publisher 接口,代表0到N个元素的发布者
export PATH=/Users/tlc/tools/mongodb-5.0.3/bin:$PATH
@RestController@Slf4jpublic class TestController {@GetMapping("/1")private String get1() {log.info("get1 start");String result = createStr();log.info("get1 end.");return result;}@GetMapping("/2")private Mono<String> get2() {log.info("get2 start");Mono<String> result = Mono.fromSupplier(() -> createStr());log.info("get2 end.");return result;}/*** Flux : 返回0-n个元素** @return*/@GetMapping(value = "/3", produces = MediaType.TEXT_EVENT_STREAM_VALUE)private Flux<String> flux() {Flux<String> result = Flux.fromStream(IntStream.range(1, 5).mapToObj(i -> {try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {}return "flux data--" + i;}));return result;}private String createStr() {try {TimeUnit.SECONDS.sleep(5);} catch (InterruptedException e) {}return "some string";}}
