WebFlux Web和WebFlux启动器 [英] WebFlux web and webflux starter
本文介绍了WebFlux Web和WebFlux启动器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
webflux starter
创建了一个Spring boot 2.0.0.M7
项目,因为我想使用所有的异步和非阻塞功能。
我添加了server.servlet.context-path
,但如果我不同时添加Web Starter,它将不起作用。
如果我同时添加两个启动器,我的非阻塞功能会出现问题吗? 我使用Gatling执行了一些压力测试,删除或添加Web Starter都得到了相同的分数。
这方面有什么帮助吗?
推荐答案
如果同时将spring-boot-starter-web
和spring-boot-starter-webflux
添加到应用程序,则Spring Boot会将其配置为Spring MVC应用程序。
这是有意为之,因为许多Spring MVC都会在其MVC应用程序中使用新的WebClient
,从而获得对Webflow的依赖。此外,从Spring Framework5开始,Spring MVC知道如何在控制器级别使用Flux处理少数情况。
您始终可以像这样强制您的选择:
SpringApplication app = new SpringApplication(MyApplication.class);
app.setWebApplicationType(WebApplicationType.REACTIVE);
app.run(...);
在您的情况下,这不是强制选择,而是使用WebFlux不支持的内容。
server.servlet.context-path
配置属性是特定于Servlet的,因此它不适用于WebFlux。目前,Spring Boot不支持WAR部署,也不支持WebFlux应用程序的多Web上下文。因此,提供这样的房产是没有意义的。
"基于Servlet的"和使用Spring的反应式运行时之间的运行时模型差异可能非常细微,我建议您观看talk that describes those choices。简单的答案是:如果您使用的是带有异步类型(DeferredResult
、Flux
或SseEmitter
)的Spring MVC,那么事情将是异步的,但读和写仍然是阻塞的。
这篇关于WebFlux Web和WebFlux启动器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文