Skip to content

1. Einführung

Die PDF des Dokuments ist verfügbar |HIER|.

Die Beispiele des Dokuments sind verfügbar |HIER|.

1.1. Contexte

Dieses Dokument richtet sich nicht an Anfänger, sondern an Benutzer mit fundierten Java-Kenntnissen. Es stützt sich auf folgende Quellen:

  1. Dokumentation [Reactive Programming];
  2. Lambda-Funktionen in Java 8;
  3. „Learning Reactive Programming With Java 8“;
  4. „Java 8 in Action“;

Im Gegensatz zu anderen Dokumenten, die ich verfasst habe, stützt sich dieses Dokument vor allem auf Beispiele und geht nur wenig auf die Theorie ein. Jedes Beispiel wird jedoch von einer Erklärung begleitet, und das Dokument folgt einem logischen Aufbau.

ReactiveX ist eine Sammlung von Bibliotheken, die die asynchrone Programmierung und die Auswertung der so gewonnenen Daten erleichtern:

 
 
 

Die Rx-Bibliothek wurde in vielen Sprachen implementiert:

 

Wir befassen uns hier mit den folgenden Bibliotheken:

  • RxJava für die Java-Welt;
  • RxAndroid, eine Spezialisierung von RxJava für die Android-Umgebung;
  • RxSwing, eine Spezialisierung von RxJava für die Swing-Umgebung;

Die Konzepte der reaktiven Programmierung sind auf den ersten Blick komplex. Daher richtet sich dieses Dokument grundsätzlich nicht an Anfänger. Dennoch habe ich mich sehr bemüht, den verwendeten Code zu erklären, und auch Anfänger ohne Vorkenntnisse können sich mit diesem Dokument in die reaktive Programmierung einarbeiten.

1.2. Verwendete Tools

Die folgenden Beispiele wurden mit der folgenden Arbeitsumgebung getestet:

  • Windows 10 Pro 64-Bit-Rechner;
  • JDK 1.8 (Absatz 1);
  • IntelliJ IDEA Community Edition (Absatz 10.4);

1.3. Beispielcodes

Die Quellcodes der folgenden Beispiele finden Sie |ICI| im Ordner [dvp/exemples].

 

Der Ordner [dvp/exemples] [2] ist ein Gradle-Projekt, das die meisten Beispiele dieses Dokuments enthält. Er kann mit allen IDE geöffnet werden, die den Gradle-Projektmanager [http://gradle.org/] unterstützen. IntelliJ IDEA unterstützt dies nativ. Für Eclipse oder NetBeans ist ein Plugin erforderlich. Mit der IntelliJ IDEA Community Edition kann wie folgt vorgegangen werden:

Das Projekt [exemples] wird über die folgende Datei konfiguriert: [build.gradle] [4]:


buildscript {
    repositories {
        mavenCentral()
    }
}

apply plugin: 'java'

jar {
    baseName = 'exemples-01'
    version = '0.0.1-SNAPSHOT'
}

repositories {
    mavenCentral()
}

dependencies {
    compile('io.reactivex:rxswing:0.25.0')
    compile('io.reactivex:rxjava:1.1.3')
    compile('com.fasterxml.jackson.core:jackson-databind:2.7.3')
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.9'
}
  • Zeilen 18–22: die Gradle-Abhängigkeiten des Projekts (die herunterzuladenden Bibliotheken);
  • Zeile 19: die für das in Abschnitt 2 behandelte Swing-Beispiel erforderliche Bibliothek;
  • Zeile 20: die Bibliothek „RxJava“;
  • Zeile 21: eine Bibliothek namens jSON;
  • Zeilen 9–12: die Eigenschaften des durch die Kompilierung des Projekts erzeugten JAR-Archivs;

Um die für das Projekt erforderlichen Abhängigkeiten herunterzuladen, gehen Sie wie folgt vor: [1-4]: