【问题标题】:What are the benefits of using BaseSubscriber hooks vs Subscriber methods in spring Reactor?在 Spring Reactor 中使用 BaseSubscriber 钩子与订阅者方法有什么好处?
【发布时间】:2020-08-08 19:05:58
【问题描述】:

projectreactor.io/docs/core/release/reference 文档显示了 BaseSubscriber 的实现,作为在订阅中使用 lambdas 的替代方法,但是通过阅读参考文档:BaseSubscriber 我看不到覆盖任何钩子如何实现覆盖 @987654324 的任何事情@base 方法不会。我们为什么要使用BaseSubscriber

【问题讨论】:

  • 订阅者基础方法是什么意思?
  • 订阅者接口中的方法

标签: spring-webflux project-reactor reactive-streams


【解决方案1】:

BaseSubscriberSubscriber 方法中实现簿记和保护,因此您不必编写样板文件并担心样板文件是正确的/涵盖所有基础(例如,防止onNext/@ 中的异常987654324@/etc... 并将所述异常转换为onError 信号)。

请注意,当您使用基于 lambda 的 Flux#subscribe 版本时,它会创建一个非常相似的 LambdaSubscriber 并具有相同的样板。

那么在这两种情况下,作为开发人员的您只剩下实现业务逻辑的工作了。在一种情况下,它是通过提供的 lambda,而在 BaseSubscriber 的情况下,它是通过实现 hookXxx 方法。

lambda 方法和BaseSubscriber 之间的主要区别在于,在 lambda 中,除了 lambda 的输入参数之外,您无法访问其他状态。使用BaseSubscriber,我们专门捕获Subscription,钩子方法可以cancel()request(n)那个订阅。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-01
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多