Spring Reactive ist der moderne, reaktive und bessere Spring Technologie-Stack zum Entwickeln von performanteren Web-Anwendungen und REST-Services. Spring Reactive ist die Grundlage des reaktiven Stacks und bietet eine Event-basierte, nicht blockierende Architektur, die es Anwendungen erlaubt mehr Leistung aus ihren CPU-Ressourcen herauszuholen.
Spring Reactive bietet dabei vom Client über den Server bis zur Datenbank einen durchgängigen reaktiven Stack als Alternative zum klassischen Servlet-Stack an. In diesem Kurs werde ich euch folgenden reaktiven Stack erklären und an praktischen Code-Beispielen vorstellen:
Spring WebClient der reaktive HTTP-Client als Nachfolger des klassischen Spring RestTemplates.
Spring WebFlux die nicht blockierende Alternative zu Spring MVC.
Spring Data Reactive die einfache und performante Anbindung an moderne Datenbanken, wie MongoDB.
Im ersten Kapitel dieses Kurses besprechen wir das reaktive Verschicken von HTTP-Requests mit dem Spring WebClient. Dazu verwenden wir die Datenströme Mono und Flux. Ich erkläre Mono und Flux ausführlich und zeige euch wie ihr sie verwendet und warum sie durch die nicht blockierende Verarbeitung deutlich performanter sind.
Danach betrachten wir die Server-Seite mit Spring WebFlux. Ich zeige euch, wie ihr die Threads eures Servers optimal ausnutzt bzw. nicht blockiert und somit unter entsprechender Last das Maximum aus eurer CPU herausholt. Ihr lernt wie ihr mit den reaktiven Datenströmen Mono und Flux eine REST-API umsetzt und wie ihr die Daten im Datenstrom reaktiv bearbeitet.
Mit Spring Data Reactive binde ich ein MongoDB als NoSQL Datenbank an und komplettiere damit den Technologie-Stack. Ich erkläre im allgemein Spring Data und natürlich auch wie ihr eine reaktive Kommunikation mit eurer Datenbank implementiert. Dazu werden wir die Datenströme mit Mono und Flux vom Client über den Server bis zur Datenbank und wieder zurück aufbauen und reaktiv verarbeiten.
In den Videos dieses Kurses werde ich in der Programmiersprache Java einen Spring REST-Service programmieren, so dass die Videos bzw. der entwickelte Code sich zu einem praxisnahen, größeren Beispiel zusammensetzen. Um die Themen trotzdem mit kompaktem Code zu erklären, werde ich den Best-Practices des Unit- und Integrations-Tests folgen und somit Demo und Test gut verständlich kombinieren.
Als Software Entwickler und Architekt entwickle ich viele Spring Anwendungen. Für neue Technologien begeistere ich mich seit über 15 Jahren beruflich. Privat blogge ich regelmäßig zu diesen Themen und biete für meine Kollegen bei der Deutschen Telekom Live Coding Sessions an, in denen ich neue Technologien vorstelle - mit diesem Kurs biete ich euch diese Coding Sessions in ausführlicher und optimierter Form an.