内容简介
第1章 响应式编程总览(Reactive Programming)
1.1 异步编程模式
1.1.1 并发
1.1.2 并行开发初探
1.2 流(Stream)
1.3 响应式流(Reactive Stream)
1.3.1 响应式流的特性
1.3.2 响应式开发的设计原则
1.3.3 响应式开发的好处
1.4 响应式开发工具库
1.4.1 RxJava简介
1.4.2 Reactor简介
1.4.3 MongoDB简介
1.4.4 响应式项目用例
1.5 Java 9中的响应式编程
1.5.1 响应式编程接口
1.5.2 Java 9响应式编程入门Demo
1.5.3 SubmissionPublisher类的源码解读
1.5.4 响应式编程整合Spring实战案例
1.6 小结
第2章 在RxJava中创建Observable
2.1 响应式编程所涉及的设计模式
2.1.1 观察者模式
2.1.2 迭代器模式
2.2 解读reactivex.Observable
2.2.1 从Flow.Publisher到Observable
2.2.2 subscribe的二三事
2.2.3 create方法的设计思想
2.2.4 各式各样的Observable
2.2.5 Observable.cache
2.2.6 无限流
2.2.7 在Observable内处理错误
2.2.8 定时控制Observable发送数据
2.2.9 Disposable延伸
2.2.10 ConnectableObservable解读
2.2.11 Observable中的publish.refCount解读
2.2.12 RxJava中的Subject解读
2.3 小结
第3章 RxJava 2中的操作
3.1 核心操作
3.1.1 使用filter进行条件过滤
3.1.2 使用map进行元素转换
3.1.3 使用flatMap进行扁平化转换
3.1.4 使用scan累加器
3.1.5 使用groupBy进行分组
3.2 多个Observable的合并操作
3.2.1 使用merge对Observable进行合并
3.2.2 使用zip方法进行合并
3.2.3 combineLatest操作
3.2.4 withLatestFrom操作
3.2.5 amb操作
3.3 高级操作
3.3.1 再谈累加器scan
3.3.2 聚合操作reduce
3.3.3 收集操作collect
3.3.4 使用distinct去重
3.3.5 使用distinctUntilChanged过滤重复数据
3.3.6 其他操作
3.3.7 自定义操作
3.4 小结
第4章 对RxJava 2的设计探索
4.1 源的创建设计思路
4.2 中间操作的转承
4.3 小结
第5章 Observable实战
5.1 初版架子实现
5.1.1 DAO层面的处理工作
5.1.2 控制层的响应式实现
5.2 基于架子实现一个汇率查询的服务
5.3 rxjava-web-spring-boot-starter的抽取设计
5.4 ObservableSseEmitter的设计实现
5.5 小结
第6章 RxJava 2中的多线程操作
6.1 初探RxJava并发编程
6.2 subscribeOn操作
6.3 observeOn操作
6.4 unsubscribeOn操作
6.5 调度器Scheduler
6.5.1 Schedulers.newThread方式
6.5.2 Schedulers.io方式
6.5.3 Schedulers.computation方式
6.5.4 Schedulers.from(Executor executor)自定义方式
6.6 小结
第7章 Flowable与背压
7.1 回顾背压
7.2 引入Flowable
7.3 探索Flowable.create
7.3.1 BackpressureStrategy.BUFFER策略
7.3.2 BackpressureStrategy.LATEST策略
7.3.3 BackpressureStrategy.DROP策略
7.4 将一个Observable转化为一个Flowable
7.5 通过onBackpressureXXX操作来实现背压策略
7.5.1 onBackPressureBuffer操作
7.5.2 onBackpressureLatest与onBackpressureDrop操作
7.6 Flowable.generate操作
7.7 小结
第8章 Flowable实战
8.1 使用Flowable封装JDBC
8.1.1 封装部分查询逻辑
8.1.2 封装update逻辑
8.2 结合Spring Web应用使用Flowable
8.2.1 接口数据的获取
8.2.2 响应式服务的源设计
8.3 单元测试
8.3.1 使用Mock Service Server进行测试
8.3.2 使用@Mock来进行一些服务测试
8.4 controller层的实现逻辑改造
8.5 小结