近些年来,反应式编程亦或称为响应式编程,在开发者社区中很受欢迎,特别在 Spring 5 以及 Spring Boot 2 发布之后热度再次飙升。以反应式编程为基础的 Spring WebFlux 组件作为异步非阻塞的系统解决方案,可以明显的提高系统吞吐量。
首先看一下Srping官网上的一张图,对比一下SpringMvc和Spring WebFlux:
Spring WebFlux 提供了两种编程模型:第一种是 Spring MVC 中使用的基于传统 SpringMVC 注解的方式;第二种是基于 Java 8 的 lambda 表达式的函数式编程模型,给出路由和处理请求。Spring MVC 和 WebFlux 控制器都支持 Flux/Mono 返回类型。、
WebFlux 需要底层提供运行时的支持,WebFlux 可以运行在支持 Servlet 3.1 非阻塞 IO API 的 Servlet 容器上,或是其他异步运行时环境,如 Netty 和 Undertow。Spring Boot 2默认选择的是Netty作为启动容器。
如何实现反应式编程,可参阅系统文章 Spring Boot 2 之 WebFlux 反应式编程解析及实战。编写反应式代码之前,我们应了解Java 8 Lambda和Stream 函数式编程以及Servlet3.0异步编程与SSE。
推一波好文~~~,文章多数已入GitChat严选并获得好评,有没有一款适合你?