Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 处理可调用、可完成的未来和流量_Spring_Spring Mvc_Spring Webflux - Fatal编程技术网

Spring 处理可调用、可完成的未来和流量

Spring 处理可调用、可完成的未来和流量,spring,spring-mvc,spring-webflux,Spring,Spring Mvc,Spring Webflux,从spring 5开始,似乎Flux/Mono也可以是spring rest控制器方法的返回值。 我阅读了SpringReferenceGuide 4.3,并阅读了关于如何处理Callable和DeferredResult的非常好的描述() 我还在一些博客文章中读到,CompletableFuture也可以从控制器方法返回。如果这是真的,那么任何人都无法解释这是怎么回事 CompletableFuture和Flux/Mono在Spring MVC中处理? 它们的处理方式是否与DelferredR

从spring 5开始,似乎Flux/Mono也可以是spring rest控制器方法的返回值。 我阅读了SpringReferenceGuide 4.3,并阅读了关于如何处理Callable和DeferredResult的非常好的描述() 我还在一些博客文章中读到,CompletableFuture也可以从控制器方法返回。如果这是真的,那么任何人都无法解释这是怎么回事 CompletableFuture和Flux/Mono在Spring MVC中处理?
它们的处理方式是否与DelferredResult/Callable相同,即在外部线程中完成“处理”,然后Spring MVC将请求发回DispatcherServlet(因此HTTP响应被写入servlet容器线程并刷新)

确实,从SpringFramework 5.0开始,SpringMVC可以在控制器处理程序中处理类似发布者的返回类型。根据返回类型的基数(一个或多个可能的值?),Spring MVC将使用以下方法处理它:

  • 如果返回单个值,则返回延迟结果

  • 实际上,从SpringFramework5.0开始,SpringMVC可以在控制器处理程序中处理类似于发布者的返回类型。根据返回类型的基数(一个或多个可能的值?),Spring MVC将使用以下方法处理它:

    • 如果返回单个值,则返回延迟结果

    • 这段视频很好地解释了SpringMVC中发生的事情。简单地说,
      startAsync
      用于恢复(分派)到servlet线程,以便(以阻塞方式)写入servlet响应。

      这个视频很好地解释了spring mvc中发生的事情。简单地
      startAsync
      用于恢复(分派)到servlet线程,以便(以阻塞方式)写入servlet响应。

      thx很多。根据的最后一段,这是否意味着spring MVC使用SyncTaskExecutor写入ServletResponseOutputStream(不阻止“事件循环线程”),但同时该特定执行器不应用于生产?所以在SpringMVC中,如果我想使用反应式类型作为控制器返回方法,我应该显式地配置MVCTaskExecutor吗?为什么MVC TaskExecutor不需要在Spring 4.3中配置为DeferredResult?thx很多。根据的最后一段,这是否意味着spring MVC使用SyncTaskExecutor写入ServletResponseOutputStream(不阻止“事件循环线程”),但同时该特定执行器不应用于生产?所以在SpringMVC中,如果我想使用反应式类型作为控制器返回方法,我应该显式地配置MVCTaskExecutor吗?为什么MVC TaskExecutor不需要在Spring 4.3中为DeferredResult配置?