(一)响应式编程理论

        小编大学毕业后面试的第一家公司问我会响应式吗,我当时觉得好陌生呀,完全没有听说过的名词,还在那里胡编乱造说一堆,但是也不是完全没有沾边,提到了Java8的新特性,现在想想也是印象很深,但好在成功拿到offer,入职后我就很努力的恶补很多相关知识,现在纯纯就是干货拿来分享,让你少走弯路。

        在了解响应式编程之后,发现响应式编程在行业内还没有普及,因为这对程序员有比较高的要求,不比传统编程好调试,但是当我掌握它的时候,我觉得还是非常好用的,相信在不久的将来将会普及。在学习之前你必须掌握Java基础、Maven使用、lamda表达式、响应式编程等基础。本文章适合有编程基础、从业人员并且想要学习响应式编程的朋友。

一、什么是响应式编程

        在学习之前,我们要搞清楚它是什么,怎么做,怎么用。今天我们先学习是什么?        

        响应式编程可视为观察者模式的一种应用,它通过订阅并接收数据流中的数据,实现对数据的处理。Project Reactor 框架提供了一套功能强大的 API,极大地简化了多线程和异步编程的开发流程。借助这些 API,开发者能以更高效的方式处理数据,显著降低对数据进行各类操作时的复杂度,提升开发效率与代码质量 。

二、基本概念

        我们先来了解一些在响应式中经常提及到的基本概念,在这里先进行了解,有个初步的印象,在后续的学习中就不会感觉到陌生了。

  • Publisher:发布者(数据流),表示数据的生产者。
  • Subscriber:订阅者,表示数据的消费者。
  • Mono: 包含0-1个数据的发布者,实现了Publisher。
  • Flux: 包含0-n个数据的发布者,实现了Publisher。
  • Operator: 操作符,表示对数据流中的数据的操作描述。用于改变发布者的行为。

三、响应式必读说明

  • 不要试图从流中获取数据出来,而是先思考需要对流中元素做什么,响应式代码需要使用响应式方法(如subscribe())来订阅数据流并触发异步处理。
  • 需要对流中的数据进行操作时,都应该使用对应操作符来处理,根据Mono/Flux等提供的操作符API进行组合操作。
  • 操作符主要接受以下几大类:(说明:操作符主要以lamda表达式为主,开发者只需要关注传入参数以及在lamda表达式内编写业务处理逻辑并return需要的返回值类型即可)

        1、无返回值的Consumer对象

        2、一个参数及带返回值的Function对象

        3、两个参数及待返回的BiFuntion对象

  • 如下图reactor官方marble diagrams图示意,我们需要做的就是编写operator部分,而operator即为Mono/Flux等提供的各类操作符如.map().flatMap()等方法。
  • 关于操作符的API如果不明白含义时可以看marble diagrams示意图,鼠标放在操作符上即可。
  • 响应式里面可以操作非响应式的方法,但非响应式方法内无法返回响应式结果。
    (一)响应式编程理论_第1张图片 Mono的marble diagrams
    (一)响应式编程理论_第2张图片 Flux的marble diagrams
    (一)响应式编程理论_第3张图片 .faltMap()弹珠图

    下期预告:Reactor核心-前置知识(第一期)

    Reactor核心-前置知识一共有四期

    (第一期):Lambda表达式

    (第二期):Function函数式接口出入参定义

    (第三期):StreamAPI

    (第四期):线程池

    什么问题都可以评论区留言,看见都会回复的

    如果你觉得本篇文章对你有所帮助的,把“文章有帮助的”打在评论区

    多多支持吧!!!

    点赞加藏评论,是对小编莫大的肯定。抱拳了!

    你可能感兴趣的:(响应式编程,java,响应式框架,经验分享)