WebFlux 控制器中的 Mono 或 Flux 请求主体

use*_*534 8 reactive spring-webflux

获取输入常规 java 有效负载的控制器与反应式有效负载的控制器之间有什么区别?例如,假设我有以下 2 个端点:

@RestController
public class MyController {
@PostMapping
public Flux<SomeObject> doThing(@RequestBody MyPayload playlod) {
// do things that return flux - reactive all the way from this controller
Run Code Online (Sandbox Code Playgroud)

和这个:

@RestController
public class MyController {
@PostMapping
public Flux<SomeObject> doThing(@RequestBody Mono<MyPayload> playlod) {
   
Run Code Online (Sandbox Code Playgroud)

从反应性的角度来看,我不明白这两种方法之间的区别。

lka*_*ris 9

根据WebFlux文档

\n

请求正文可以是以下方式之一,它将在注释和函数式编程模型中自动解码:

\n
    \n
  • Account account\xe2\x80\x89\xe2\x80\x94\xe2\x80\x89在调用控制器之前,帐户会被反序列化而不阻塞\n。
  • \n
  • Mono<Account> account\xe2\x80\x89\xe2\x80\x94\xe2\x80\x89控制器可以使用Mono来声明\n帐户反序列化后要执行的逻辑。
  • \n
  • Flux<Account> accounts\xe2\x80\x89\xe2\x80\x94\xe2\x80\x89输入流\ns场景。
  • \n
\n