wittyResry / myIssue

My issue mark down^_^ 欢迎吐槽,讨论~~
https://github.com/wittyResry/myIssue/issues
The Unlicense
5 stars 1 forks source link

响应式异步官方文档 #129

Open wittyResry opened 1 year ago

wittyResry commented 1 year ago

Mono:https://projectreactor.io/docs/core/release/reference/#core-features Flux:https://projectreactor.io/docs/core/release/reference/#flux

wittyResry commented 1 year ago
wittyResry commented 1 year ago

Spring Data Spring Data JDBC Spring Data JPA Spring Data LDAP Spring Data MongoDB Spring Data Redis Spring Data R2DBC Spring Data REST Spring Data for Apache Cassandra Spring Data for Apache Geode Spring Data for Apache Solr Spring Data for VMware Tanzu GemFire Spring Data Couchbase Spring Data Elasticsearch Spring Data Envers Spring Data Neo4j Spring Data JDBC Extensions Spring for Apache Hadoop

wittyResry commented 12 months ago

系统中大量使用到了reactor,其核心类只有2个:Flux,Mono。 常用操作符:

  1. map: 转换上游数据: flux.map(UserEntity::getId)
  2. mapNotNull: 转换上游数据,并忽略null值.(reactor 3.4提供)
  3. flatMap: 转换上游数据,但是结果是一个数据流,并将这个数据流平铺: flux.flatMap(this::findById)
  4. flatMapMany: 转换Mono中的元素为Flux(1个转多个): mono.flatMapMany(this::findChildren)
  5. concat: 将多个流连接在一起组成一个流(按顺序订阅) : Flux.concat(header,body)
  6. merge: 将多个流合并在一起,同时订阅流: Flux.merge(save(info),saveDetail(detail))
  7. zip: 压缩多个流中的元素: Mono.zip(getData(id),getDetail(id),UserInfo::of)
  8. then: 上游流完成后执行其他的操作.
  9. doOnNext: 流中产生数据时执行.
  10. doOnError: 发送错误时执行.
  11. doOnCancel: 流被取消时执行.如: http未响应前,客户端断开了连接.
  12. onErrorContinue: 流发生错误时,继续处理数据而不是终止整个流.
  13. defaultIfEmpty: 当流为空时,使用默认值.
  14. switchIfEmpty: 当流为空时,切换为另外一个流.
  15. as: 将流作为参数,转为另外一个结果:flux.as(this::save) 完整文档请查看官方文档