在控制器中我可以写:
fun update(@RequestBody myPojo: MyPojo): Mono<Void>
要么
fun update(@RequestBody myPojo: Mono<MyPojo>): Mono<Void>
有什么区别吗?身体解析会在不同的线程中完成吗?在第一种情况下,我将阻止主反应堆线程,直到 myPojo 被解析?
myPojo
两者之间没有强大的运行时差异;在第一种情况下,Spring会解包传入的 Mono ,但解码仍然会异步发生 .
Mono
唯一的区别是没有 Mono 类型作为参数,您将无法在其上使用Reactor运算符 . 所以这真的是关于控制器处理程序需要实现的内容 .
1 回答
两者之间没有强大的运行时差异;在第一种情况下,Spring会解包传入的
Mono
,但解码仍然会异步发生 .唯一的区别是没有
Mono
类型作为参数,您将无法在其上使用Reactor运算符 . 所以这真的是关于控制器处理程序需要实现的内容 .