Skip to content

1. Einleitung

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

Die Beispiele im Dokument sind |HIER| verfügbar.

1.1. Hintergrund

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

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

Im Gegensatz zu anderen Dokumenten, die ich verfasst habe, stützt sich dieses vor allem auf Beispiele und geht nur kurz 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 Verarbeitung der daraus resultierenden Daten erleichtern:

 
 
 

Die Rx-Bibliothek wurde in vielen Sprachen implementiert:

 

Hier konzentrieren wir uns auf die 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. Deshalb richtet sich dieses Dokument nicht in erster Linie an Anfänger. Dennoch habe ich mich sehr bemüht, den verwendeten Code zu erklären, und auch Anfänger können sich mithilfe dieses Dokuments mit reaktiver Programmierung vertraut machen.

1.2. Verwendete Tools

Die folgenden Beispiele wurden in der folgenden Umgebung getestet:

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

1.3. Beispielcode

Den Code für die folgenden Beispiele finden Sie |HIER| im Ordner [dvp/examples].

 

Der Ordner [dvp/examples] [2] ist ein Gradle-Projekt, das die meisten Beispiele in diesem Dokument enthält. Er kann mit jeder IDE geöffnet werden, die den Gradle-Projektmanager unterstützt [http://gradle.org/]. IntelliJ IDEA unterstützt ihn nativ. Für Eclipse oder NetBeans ist ein Plugin erforderlich. Mit der IntelliJ IDEA Community Edition können Sie wie folgt vorgehen:

Das Projekt [examples] wird durch die folgende [build.gradle]-Datei [4] konfiguriert:


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 (herunterzuladende Bibliotheken);
  • Zeile 19: die für das in Abschnitt 2 besprochene Swing-Beispiel erforderliche Bibliothek;
  • Zeile 20: die RxJava-Bibliothek;
  • Zeile 21: eine JSON-Bibliothek;
  • Zeilen 9–12: die Eigenschaften des JAR-Archivs, das durch die Kompilierung des Projekts erstellt wird;

Um die für das Projekt erforderlichen Abhängigkeiten herunterzuladen, führen Sie die folgenden Schritte [1–4] aus: