WebFlux 入坑(序篇)
Spring5 最重要的新特性就是WebFlux了,WebFlux 是基于Reactor 构建的响应式(基于数据流及其传播变换方式的一种编程模型)Web框架,可以充分发挥多核处理器的优势,可以在使用少量线程和内存情况下提高并发量。虽然WebFlux技术并不是很成熟,但是作为Spring技术栈前沿的新技术,我们还是应该去学习。
WebFlux
WebFlux 最底层是基于Reactor实现的,Reactor 是响应式编程在Java上的一种实现。如果你了解RxJava的话,可以说Reactor是RxJava的阉割版,因为Reactor 只提供了Mono、Flux 两种序列类型,Mono 只产生0个或者一个数据,Flux 可以产生0 至多个元素。由于WebFlux 是响应式的, 所以从DAO 到Service 再到 Controller ,层层之间都必须是响应式的,层与层之前数据交互处理都只能是Mono和Flux,这样就导致了很多阻塞式的框架无法使用,所以传统的关系型数据库框架(JDBC、JPA) 都无法使用(其实已经有了RxJDBC,但是要你去直接操作JDBC,太麻烦了)。好在Spring 已经提供了响应式的Nosql框架,比如MongoDB、Redils,SpringSecurity 也有响应式的版本,目前来看WebFlux 还是可以用来开发简单应用的。
imageWebFlux 与SpringMVC 两者之间有着一定的兼容适应性,在开发WebFlux时,任然可以使用MVC的那一套:@Controller、@RequestMapping,也就是说如果不涉及到数据层的操作,WebFlux 和SpringMVC 可以自由切换,当然,WebFlux 还提供了一套函数式风格的写法。
image内容
入坑系列文章将带来一下内容:
-
WebFlux 函数式风格
-
WebFlux 整合ReactiveMongoDB
-
WebFlux 开发REST API
-
WebFlux 响应式客户端
-
WebFlux 缓存
-
WebFlux 接入Swagger
-
WebFlux 整合SpringSecurity
-
WebFlux 单元测试
-
…. 未完待续
QQ群:577715614