使用 Spring WebFlux 构建响应式 Web 应用
1. Spring WebFlux 简介
Spring Framework 5 引入了一个名为 spring-webflux
的新模块,用于支持构建响应式 Web 应用程序。默认情况下,Spring WebFlux 使用 Project Reactor 来实现响应式流,不过也可以使用其他响应式流实现,如 RxJava。 spring-webflux
模块支持通过 REST、HTML 浏览器和 WebSocket 风格的通信来创建响应式服务器和客户端应用程序。
每个运行时都适配了 ServerHttpRequest
和 ServerHttpResponse
,从而将请求和响应的主体以 Flux<DataBuffer>
的形式暴露出来,而不是使用 InputStream
和 OutputStream
,并支持响应式背压。在此基础上,还支持 REST 风格的 JSON 和 XML 序列化与反序列化,以及 HTML 视图渲染,这些操作以 Flux<Object>
的形式进行。
开发响应式 Web 应用程序可以通过以下两种方式使用 spring-webflux
模块:
- 使用基于注解的 SpringMVC 风格,结合 @Controller
和 @RestController