深入浅出spring boot 2.x 08-spring5新框架 webFlux【笔记】

本文深入探讨Spring5的WebFlux框架,一种响应式的Web开发方式,适用于构建高并发、低延迟的应用。文章讲解了响应式编程的概念,WebFlux的工作原理,包括Reactor模式、Flux与Mono数据流的使用,以及如何处理背压问题。同时,介绍了WebFlux的开发模式,与传统SpringMVC的区别,和如何在微服务架构中使用WebClient。
摘要由CSDN通过智能技术生成
spring5新框架 webFlux
  • 响应式的Web框架,springboot2才开始支持
  • 需要了解RxJava和Reactor,Reactor是webFlux默认的实现方式
首先了解响应式编程

响应式编程是一种面向数据流和变化传播的编程范式
响应式宣言:

  • 快速响应:尽可能块的响应
  • 可恢复:强大的容错和修复机制
  • 可伸缩:根据自身压力变化,释放或扩展服务器的能力
  • 响应式编程的三层
  • router functions:路由分发,根据请求的事件,分发到具体类具体方法
  • spring webFlux:控制层,处理业务逻辑前进行的封装和控制数据流返回格式等。
  • http/Reactive streams:将结果转换为数据流的过程
spring webFlux两种开发方式
  • 类似springMVC模式,主要,因为通用
  • 函数功能性编程
Reactor模式

Reactor封装数据流的类

  • Flux:存放0-n个数据流序列,一个一个发送给客户端

  • Mono:存放0-1个数据流序列
    Flux与Mono可以互相转换

  • 背压
    如果服务器短时间内大量数据流给客户端,客户端可能被压垮,为此可采用响应式拉取,服务器一次发送给客户端一个数据流,客户端处理完这个序列后,服务器再发送…

  • springMVC使用DispatcherServlet,webFlux使用WebHandler,类似以上

  • wenFlux持久层接口使用ReactiveMongoRepository
    例:
    Flux findUsers( )0-N个数据流序列
    Mono 0-1个数据流序列

客户端端调用WebClient
  • WebClient比restTemplate更强大,restTemplate使用在微服务间的互相调用
  • 错误的处理可以使用实现webFluxConfigurer接口
    • 类型转换器Converter,也是实现webFluxConfigurer接口,覆盖addFormatters,将自定义的转换器加入进来
验证器Validator

实现Validator覆盖supports和validate,之后

  • 全局控制器也是实现webFluxConfigurer接口,覆盖getValidator方法。将验证器加入进去。启用验证器@Valid,如@Valid @RequestBody User u

  • 局部验证器@initbinder public void initbinder(DateBinder Binder){
    Binder.setValidator(new UserValidator())};

webFluxConfigurer接口还有很多功能

如配置视图解析器,还有访问资源(addResourceHandlers)等,为了区分静态资源,也可以通过spring.webFlux.Static-Path-pattern=/static/**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值