官术网_书友最值得收藏!

RxJava as a reactive framework

For some time, there was a standard library for reactive programming on Java platforms—namely RxJava 1.x (see https://github.com/ReactiveX/RxJava for more details). That library paved the way for reactive programming as we know it in the Java world today. At the moment, it is not the only library of this kind; we also have Akka Streams and Project Reactor. The latter is covered in detail in Chapter 4, Project Reactor - the Foundation for Reactive Apps. So, currently, we have a few options from which we may choose. Furthermore, RxJava itself has changed a lot with the release of version 2.x. However, to understand the most basic concepts of reactive programming and the reasoning behind them, we will be focusing on the most fundamental part of the RxJava only, on the API, which has not changed since the early versions of the library. All examples in this section should work fine with both RxJava 1.x and RxJava 2.x.

To enable simultaneous usage in one application classpath, RxJava 2.x and RxJava 1.x have different group IDs (io.reactivex.rxjava2 versus io.reactivex) and namespaces (io.reactivex versus rx).

Even though the end-of-life for RxJava 1.x was in March 2018, it is still used in a handful of libraries and applications, mainly because of long-standing, wide-spread adoption. The following article provides a good description of what was changed in RxJava 2.x in comparison to RxJava 1.x:  .

The RxJava library is a Java VM implementation of Reactive Extensions (also known as ReactiveX). Reactive Extensions is a set of tools that allows imperative languages to work with data streams, regardless of a stream being synchronous or asynchronous. ReactiveX is often defined as a combination of the Observer pattern, the Iterator pattern, and functional programming. A good starting point to learn more about ReactiveX is at http://reactivex.io.

Reactive programming may seem to be difficult, especially when we are approaching it from the imperative world, but the main idea is actually straightforward. Here, we are going to learn the basics of RxJava as the most wide-spread reactive library to date. We are not going to dive into all of the details, but try to walk through all the vital concepts of reactive programming.

主站蜘蛛池模板: 胶南市| 焉耆| 石柱| 龙门县| 思南县| 昂仁县| 江安县| 五华县| 阿荣旗| 合水县| 潮州市| 长岭县| 锦州市| 永春县| 陵川县| 泾川县| 辛集市| 潼南县| 宁夏| 宁海县| 荣昌县| 昌江| 怀宁县| 安西县| 兴和县| 南昌市| 重庆市| 灵石县| 蒙阴县| 铜梁县| 哈密市| 临朐县| 讷河市| 福鼎市| 利辛县| 舟山市| 江永县| 双峰县| 自治县| 福清市| 仙居县|