Spring WebFlux入门介绍

6,515 阅读1分钟

介绍

image.png 英文好的同学还是建议直接看官方的文档。

Spring WebFlux 是 Spring Framework 5.0中引入的新的响应式web框架。与Spring MVC不同,它不需要Servlet API,是完全异步且非阻塞的,并且通过Reactor项目实现了Reactive Streams规范。
Spring WebFlux 用于创建基于事件循环执行模型的完全异步且非阻塞的应用程序。

Reactive Streams是一套用于构建高吞吐量、低延迟应用的规范。而Reactor项目是基于这套规范的实现,它是一个完全非阻塞的基础,且支持背压。Spring WebFlux基于Reactor实现了完全异步非阻塞的一套web框架,是一套响应式堆栈。

【spring-webmvc + Servlet + Tomcat】命令式的、同步阻塞的

【spring-webflux + Reactor + Netty】响应式的、异步非阻塞的

image.png

Spring MVC 还是 WebFlux?

官网上给的一副图片和我们选型的时候需要考虑的一些建议 image.png

个人理解主要还是看具体的业务场景和自己研发团队内部技术栈,因为大部分的场景都是阻塞的模式,我们也已经习惯了这种模式,转换到响应式编程学习成本都是我们需要考虑的。

Spring WebFlux Framework

我们写一个简单的程序来体验一下,我们可以直接在Idea中直接新建WebFlux程序.

image.png

Spring WebFlux有两种风格:功能性和基于注释的。基于注释的与Spring MVC非常相近

image.png

image.png

image.png

启动应用在浏览器里面直接访问就可以了, 还是比较简单的

image.png

image.png

image.png

最后

好了,本文就介绍到这里,后面在详细介绍一下它的一些核心原理和特性。
官网的地址:spring.io/projects/sp…