Cover

Craig Walls

Spring im Einsatz

3., überarbeitete Auflage

Übersetzung: Frank Langenau, Chemnitz
Titel der Originalausgabe: „Spring in Action“, 5th Edition, © 2019 by Manning Publications Co.

Authorized translation of the English edition. This translation is published and sold by permission of Manning Publications, the owner of all rights to publisch and sell the same.

Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor, Übersetzer und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder Teilen davon – entsteht.
Ebenso übernehmen Autor, Übersetzer und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.

Bibliografische Information der Deutschen Nationalbibliothek:
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

Dieses Werk ist urheberrechtlich geschützt.
Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.

Print-ISBN:        978-3-446-45512-2
E-Book-ISBN:   978-3-446-45731-7
E-Pub-ISBN:     978-3-446-46323-3

Inhalt

Titelei

Impressum

Inhalt

Vorwort

Danksagungen

Über dieses Buch

1 Erste Schritte mit Spring

1.1 Was ist Spring?

1.2 Eine Spring-Anwendung initialisieren

1.2.1 Ein Spring-Projekt mit der Spring Tool Suite initialisieren

1.2.2 Die Spring-Projektstruktur untersuchen

1.3 Eine Spring-Anwendung schreiben

1.3.1 Web-Requests verarbeiten

1.3.2 Die View definieren

1.3.3 Den Controller testen

1.3.4 Die Anwendung erstellen und ausführen

1.3.5 Spring Boot DevTools kennenlernen

1.3.6 Rückblick

1.4 Die Spring-Landschaft im Überblick

1.4.1 Der Core des Spring Frameworks

1.4.2 Spring Boot

1.4.3 Spring Data

1.4.4 Spring Security

1.4.5 Spring Integration und Spring Batch

1.4.6 Spring Cloud

1.5 Zusammenfassung

2 Webanwendungen entwickeln

2.1 Informationen anzeigen

2.1.1 Die Domäne einrichten

2.1.2 Eine Controller-Klasse erstellen

2.1.3 Die View entwerfen

2.2 Formularübermittlungen verarbeiten

2.3 Formulareingaben validieren

2.3.1 Validierungsregeln deklarieren

2.3.2 Validierung bei Formularbindung durchführen

2.3.3 Validierungsfehler anzeigen

2.4 Mit View-Controllern arbeiten

2.5 Eine View-Template-Bibliothek auswählen

2.5.1 Vorlagen zwischenspeichern

2.6 Zusammenfassung

3 Mit Daten arbeiten

3.1 Daten mit JDBC lesen und schreiben

3.1.1 Die Domäne für Persistenz anpassen

3.1.2 Mit JdbcTemplate arbeiten

3.1.3 Ein Schema definieren und Daten im Voraus laden

3.1.4 Daten einfügen

3.2 Daten mit Spring Data JPA persistent speichern

3.2.1 Spring Data JPA zum Projekt hinzufügen

3.2.2 Die Domäne als Entitäten annotieren

3.2.3 JPA-Repositories deklarieren

3.2.4 JPA-Repositories anpassen

3.3 Zusammenfassung

4 Zugriffskontrolle mit Spring Security

4.1 Spring Security aktivieren

4.2 Spring Security konfigurieren

4.2.1 Speicherinterner Benutzerspeicher

4.2.2 JDBC-basierter Benutzerspeicher

4.2.3 LDAP-gestützter Benutzerspeicher

4.2.4 Benutzerauthentifizierung anpassen

4.3 Webanfragen sichern

4.3.1 Anfragen sichern

4.3.2 Eine eigene Anmeldeseite erstellen

4.3.3 Abmelden

4.3.4 CSRF-Angriffe verhindern

4.4 Den Benutzer ermitteln

4.5 Zusammenfassung

5 Mit Konfigurationseigenschaften arbeiten

5.1 Automatische Konfiguration optimieren

5.1.1 Die Umgebungsabstraktion von Spring verstehen

5.1.2 Eine Datenquelle konfigurieren

5.1.3 Den eingebetteten Server konfigurieren

5.1.4 Protokollieren konfigurieren

5.1.5 Spezielle Eigenschaftswerte verwenden

5.2 Eigene Konfigurationseigenschaften erzeugen

5.2.1 Holder für Konfigurationseigenschaften definieren

5.2.2 Metadaten von Konfigurationseigenschaften deklarieren

5.3 Konfigurieren mit Profilen

5.3.1 Profilspezifische Eigenschaften definieren

5.3.2 Profile aktivieren

5.3.3 Beans mit Profilen bedingt erstellen

5.4 Zusammenfassung

6 REST-Dienste erstellen

6.1 RESTful Controller programmieren

6.1.1 Daten vom Server abrufen

6.1.2 Daten an den Server senden

6.1.3 Daten auf dem Server aktualisieren

6.1.4 Daten vom Server löschen

6.2 Hypermedia aktivieren

6.2.1 Hyperlinks hinzufügen

6.2.2 Ressourcenassembler erstellen

6.2.3 Eingebettete Beziehungen benennen

6.3 Datengestützte Dienste aktivieren

6.3.1 Ressourcenpfade und Beziehungsnamen anpassen

6.3.2 Paging und Sortieren

6.3.3 Benutzerdefinierte Endpunkte hinzufügen

6.3.4 Benutzerdefinierte Hyperlinks zu Spring-Data-Endpunkten hinzufügen

6.4 Zusammenfassung

7 REST-Dienste konsumieren

7.1 REST-Endpunkte mit RestTemplate konsumieren

7.1.1 Ressourcen mit GET abrufen

7.1.2 Ressourcen mit PUT senden

7.1.3 Ressourcen mit DELETE löschen

7.1.4 Ressourcendaten per POST senden

7.2 Mit Traverson in REST APIs navigieren

7.3 Zusammenfassung

8 Nachrichten asynchron senden

8.1 Nachrichten mit JMS senden

8.1.1 JMS einrichten

8.1.2 Nachrichten mit JmsTemplate senden

8.1.3 JMS-Nachrichten empfangen

8.2 Mit RabbitMQ und AMQP arbeiten

8.2.1 RabbitMQ zu Spring hinzufügen

8.2.2 Nachrichten mit RabbitTemplate senden

8.2.3 Nachrichten von RabbitMQ empfangen

8.3 Messaging mit Kafka

8.3.1 Spring für Kafka-Messaging einrichten

8.3.2 Nachrichten mit KafkaTemplate senden

8.3.3 Kafka-Listener schreiben

8.4 Zusammenfassung

9 Spring integrieren

9.1 Einen einfachen Integrationsfluss deklarieren

9.1.1 Integrationsflüsse mit XML definieren

9.1.2 Integrationsflüsse in Java konfigurieren

9.1.3 Die DSL-Konfiguration von Spring Integration verwenden

9.2 Die Landschaft von Spring Integration im Überblick

9.2.1 Nachrichtenkanäle

9.2.2 Filter

9.2.3 Transformer

9.2.4 Router

9.2.5 Splitter

9.2.6 Dienstaktivatoren

9.2.7 Gateways

9.2.8 Kanaladapter

9.2.9 Endpunktmodule

9.3 Einen E-Mail-Integrationsfluss erstellen

9.4 Zusammenfassung

10 Einführung in Reactor

10.1 Reaktive Programmierung verstehen

10.1.1 Reactive Streams definieren

10.2 Erste Schritte mit Reactor

10.2.1 Reaktive Datenflüsse grafisch darstellen

10.2.2 Reactor-Abhängigkeiten hinzufügen

10.3 Allgemeine reaktive Operationen anwenden

10.3.1 Reaktive Typen erstellen

10.3.2 Reaktive Typen kombinieren

10.3.3 Reaktive Streams transformieren und filtern

10.3.4 Logische Operationen auf reaktiven Typen ausführen

10.4 Zusammenfassung

11 Reaktive APIs entwickeln

11.1 Mit Spring WebFlux arbeiten

11.1.1 Einführung in Spring WebFlux

11.1.2 Reaktive Controller schreiben

11.2 Funktionale Anfrage-Handler definieren

11.3 Reaktive Controller testen

11.3.1 GET-Anfragen testen

11.3.2 POST-Anfragen testen

11.3.3 Mit einem Live-Server testen

11.4 REST APIs reaktiv konsumieren

11.4.1 Ressourcen mit GET-Anfragen abrufen

11.4.2 Ressourcen senden

11.4.3 Ressourcen löschen

11.4.4 Fehler behandeln

11.4.5 Anfragen vermitteln

11.5 Reaktive Web-APIs sichern

11.5.1 Reaktive Websicherheit konfigurieren

11.5.2 Einen reaktiven Dienst für Benutzerdetails konfigurieren

11.6 Zusammenfassung

12 Daten reaktiv persistent speichern

12.1 Die reaktive Geschichte von Spring Data

12.1.1 Reaktives Spring Data auf den Punkt gebracht

12.1.2 Zwischen reaktiven und nichtreaktiven Typen konvertieren

12.1.3 Reaktive Repositories entwickeln

12.2 Mit reaktiven Cassandra-Repositories arbeiten

12.2.1 Spring Data Cassandra aktivieren

12.2.2 Cassandra-Datenmodellierung verstehen

12.2.3 Domänentypen für Cassandra-Persistenz abbilden

12.2.4 Reaktive Cassandra-Repositories programmieren

12.3 Reaktive MongoDB-Repositories programmieren

12.3.1 Spring Data MongoDB aktivieren

12.3.2 Domänentypen auf Dokumente abbilden

12.3.3 Reaktive MongoDB-Repository-Schnittstellen schreiben

12.4 Zusammenfassung

13 Service-Discovery

13.1 Denken in Microservices

13.2 Eine Dienstregistrierung einrichten

13.2.1 Eureka konfigurieren

13.2.2 Eureka skalieren

13.3 Dienste registrieren und entdecken

13.3.1 Eureka-Clienteigenschaften konfigurieren

13.3.2 Dienste konsumieren

13.4 Zusammenfassung

14 Konfiguration verwalten

14.1 Konfiguration teilen

14.2 Config Server ausführen

14.2.1 Config Server aktivieren

14.2.2 Das Konfigurations-Repository füllen

14.3 Gemeinsame Konfigurationen konsumieren

14.4 Anwendungs- und profilspezifische Eigenschaften bereitstellen

14.4.1 Anwendungsspezifische Eigenschaften bereitstellen

14.4.2 Eigenschaften von Profilen bereitstellen

14.5 Konfigurationseigenschaften geheim halten

14.5.1 Eigenschaften in Git verschlüsseln

14.5.2 Geheimnisse in Vault speichern

14.6 Konfigurationseigenschaften im laufenden Betrieb aktualisieren

14.6.1 Konfigurationseigenschaften manuell aktualisieren

14.6.2 Konfigurationseigenschaften automatisch aktualisieren

14.7 Zusammenfassung

15 Fehler und Latenzzeiten behandeln

15.1 Trennschalter im Überblick

15.2 Trennschalter deklarieren

15.2.1 Latenz reduzieren

15.2.2 Schwellenwerte für Trennschalter verwalten

15.3 Fehler überwachen

15.3.1 Das Hystrix-Dashboard – eine Einführung

15.3.2 Hystrix-Threadpools

15.4 Hystrix-Streams aggregieren

15.5 Zusammenfassung

16 Mit Spring Boot Actuator arbeiten

16.1 Actuator im Überblick

16.1.1 Den Basispfad von Actuator konfigurieren

16.1.2 Actuator-Endpunkte aktivieren und deaktivieren

16.2 Actuator-Endpunkte konsumieren

16.2.1 Wichtige Anwendungsinformationen abrufen

16.2.2 Konfigurationsdetails ansehen

16.2.3 Anwendungsaktivität anzeigen

16.2.4 Laufzeit-Metriken erfassen

16.3 Actuator anpassen

16.3.1 Informationen zum Endpunkt /info beisteuern

16.3.2 Benutzerdefinierte Zustandsindikatoren definieren

16.3.3 Benutzerdefinierte Metriken registrieren

16.3.4 Benutzerdefinierte Endpunkte erstellen

16.4 Actuator sichern

16.5 Zusammenfassung

17 Spring verwalten

17.1 Spring Boot Admin verwenden

17.1.1 Einen Admin-Server erstellen

17.1.2 Admin-Clients registrieren

17.2 Admin-Server im Detail

17.2.1 Integritätsdaten und allgemeine Anwendungsinformationen anzeigen

17.2.2 Schlüsselmetriken überwachen

17.2.3 Umgebungseigenschaften untersuchen

17.2.4 Protokollierungsstufen anzeigen und festlegen

17.2.5 Threads überwachen

17.2.6 HTTP-Anfragen verfolgen

17.3 Den Admin-Server sichern

17.3.1 Anmelden beim Admin-Server aktivieren

17.3.2 Beim Actuator authentifizieren

17.4 Zusammenfassung

18 Spring mit JMX überwachen

18.1 Mit Actuator-MBeans arbeiten

18.2 Eigene MBeans erstellen

18.3 Benachrichtigungen senden

18.4 Zusammenfassung

19 Spring bereitstellen

19.1 Bereitstellungsoptionen abwägen

19.2 WAR-Dateien erstellen und bereitstellen

19.3 JAR-Dateien zu Cloud Foundry verschieben

19.4 Spring Boot in einem Docker-Container ausführen

19.5 Der Weg ist das Ziel

19.6 Zusammenfassung

A Bootstrapping von Spring-Anwendungen

A.1 Ein Projekt mit Spring Tool Suite initialisieren

A.2 Ein Projekt mit IntelliJ IDEA initialisieren

A.3 Ein Projekt mit NetBeans initialisieren

A.4 Ein Projekt unter start.spring.io initialisieren

A.5 Ein Projekt von der Befehlszeile initialisieren

A.5.1 curl und die Initializr API

A.5.2 Befehlszeilenoberfläche von Spring Boot

A.6 Spring-Anwendungen mit einem Meta‑Framework erstellen

A.7 Projekte erstellen und ausführen

Vorwort

Nachdem ich fast 15 Jahre mit Spring gearbeitet und mehrere Ausgaben dieses Buches geschrieben habe (ganz zu schweigen von „Spring Boot in Action“), sollte man meinen, dass sich kaum noch etwas Aufregendes und Neues über Spring sagen lässt, wenn es um das Vorwort für dieses Buch geht. Aber wie so oft sieht es in der Realität ganz anders aus!

Jedes einzelne Release von Spring, Spring Boot und allen anderen Projekten im Spring-Ökosystem schafft neue erstaunliche Möglichkeiten, die den Spaß an der Entwicklung von Anwendungen wieder aufleben lassen. Mit dem Release 5.0 von Spring und dem Release 2.0 von Spring Boot gibt es so viel mehr Spring zu genießen, dass es ein Kinderspiel war, eine weitere Ausgabe von Spring im Einsatz zu schreiben.

Das Großartige an Spring 5 ist die Unterstützung für reaktive Programmierung, unter anderem für Spring WebFlux, ein brandneues reaktives Web-Framework, dessen Programmiermodell sich an Spring MVC orientiert. Damit können Entwickler Webanwendungen schaffen, die sich besser skalieren lassen und weniger Threads effektiver nutzen. In Richtung des Backends einer Spring-Anwendung erlaubt es die neueste Edition von Spring Data, reaktive, nicht blockierende Daten-Repositories aufzubauen. Und alles dies baut auf Project Reactor auf, einer Java-Bibliothek für das Arbeiten mit reaktiven Typen.

Zusätzlich zu den neuen reaktiven Programmierfeatures von Spring 5 bietet Spring Boot 2 nun sogar mehr Unterstützung als je zuvor für die Autokonfiguration sowie einen vollständig neu konzipierten Actuator, mit dem sich eine laufende Anwendung inspizieren und manipulieren lässt.

Da Entwickler zudem ihre monolithischen Anwendungen in diskrete Microservices aufteilen wollen, bietet Spring Cloud Einrichtungen, die es erleichtern, Microservices zu konfigurieren, zu erkennen und sie widerstandsfähiger gegen Ausfälle zu machen.

Ich freue mich, sagen zu können, dass diese fünfte Ausgabe von Spring im Einsatz – hier vorliegend als Übersetzung in der dritten Auflage – alle diese und noch mehr Themen abdeckt! Wenn Sie ein erfahrener Veteran von Spring sind, wird Spring im Einsatz Ihr Leitfaden für alles Neue sein, das Spring zu bieten hat. Wenn Sie andererseits neu in Spring einsteigen, dann gibt es keinen besseren Zeitpunkt als jetzt, um richtig loszulegen. Die ersten Kapitel bringen Sie im Handumdrehen an den Start!

Die 15 Jahre Arbeit mit Spring sind eine spannende Zeit gewesen. Und da nun diese Edition von Spring im Einsatz vor Ihnen liegt, bin ich versessen darauf, diese Begeisterung mit Ihnen zu teilen!

Danksagungen

Zu den erstaunlichsten Dingen bei Spring und Spring Boot ist zu nennen, dass sie automatisch alle grundlegenden Installationen für eine Anwendung bereitstellen, wodurch Sie sich als Entwickler vorrangig auf die Logik konzentrieren können, die Ihre Anwendung im Speziellen ausmacht. Leider gibt es keine solchen magischen Hilfsmittel, um ein Buch zu schreiben. Oder etwa doch?

Bei Manning haben mehrere Leute ihre magischen Kräfte entfaltet, um sicherzustellen, dass dieses Buch das Beste wird, was möglich ist. Vielen Dank insbesondere an Jenny Stout, meine Entwicklungsredakteurin, und das Produktteam, darunter Projektleiterin Janet Vail, die Copyeditoren Andy Carroll und Frances Buran sowie das Korrektorat mit Katie Tennant und Melody Dolab. Dank auch dem Fachlektor Joshua White, der gründlich und hilfreich war.

In dieser Zeit haben wir auch Feedback von mehreren Gutachtern erhalten, die dafür gesorgt haben, den Kurs zu halten und die richtigen Themen abzudecken. Dafür danke ich Andrea Barisone, Arnaldo Ayala, Bill Fly, Colin Joyce, Daniel Vaughan, David Witherspoon, Eddu Melendez, Iain Campbell, Jettro Coenradie, John Gunvaldson, Markus Matzker, Nick Rakochy, Nusry Firdousi, Piotr Kafel, Raphael Villela, Riccardo Noviello, Sergio Fernandez Gonzalez, Sergiy Pylypets, Thiago Presa, Thorsten Weber, Waldemar Modzelewski, Yagiz Erkan und Željko Trogrlić.

Wie immer gäbe es absolut keinen Grund, dieses Buch zu schreiben, wenn da nicht die erstaunliche Arbeit des Spring-Entwicklerteams wäre. Ich kann nur darüber staunen, was es geschaffen hat und wie wir den Entwicklungsstil von Software immer wieder verändern.

Ein großer Dank geht an meine Mitstreiter auf der No Fluff/Just Stuff-Tour. Ich lerne weiterhin so viel von jedem von euch! Besonders danken möchte ich Brian Sletten, Nate Schutta und Ken Kousen für die Gespräche und E-Mails über Spring, die zur Gestaltung dieses Buches beigetragen haben.

Nochmals vielen Dank an die Phönizier. Ihr wisst, was ihr getan habt.

An meine wundervolle Frau Raymie, die Liebe meines Lebens, meinen süßesten Traum und meine Inspiration gerichtet: Danke für dein Engagement und dafür, dass du dich mit einem weiteren Buchprojekt abgefunden hast. Und an meine süßen und wundervollen Mädchen, Maisy und Madi: Ich bin so stolz auf euch und auf die erstaunlichen jungen Damen, die ihr einmal sein werdet. Ich liebe euch alle mehr, als ihr es euch vorstellen könnt oder ich es auszudrücken vermag.

Über dieses Buch

Spring im Einsatz soll Sie in die Lage versetzen, erstaunliche Anwendungen mit dem Spring Framework, Spring Boot und einer breiten Palette von Ergänzungstools des Spring-Ökosystems zu erstellen. Zunächst erfahren Sie, wie Sie webbasierte, datenbankgestützte Java-Anwendungen mit Spring und Spring Boot entwickeln. Anschließend geht es über die Grundlagen hinaus und es wird gezeigt, wie Sie die Integration mit anderen Anwendungen realisieren, mit reaktiven Typen programmieren und dann eine Anwendung in diskrete Microservices aufteilen. Schließlich wird erörtert, wie Sie eine Anwendung für die Bereitstellung fit machen.

Obwohl alle Projekte im Spring-Ökosystem eine ausgezeichnete Dokumentation bieten, gibt Ihnen dieses Buch etwas, was Sie in den Referenzdokumentationen nicht finden: einen praktischen, projektgetriebenen Leitfaden, um die Elemente von Spring im Rahmen einer realen Anwendung zusammenzubringen.

Wer dieses Buch lesen sollte

Die vorliegende Ausgabe von Spring im Einsatz, richtet sich an Java-Entwickler, die erste Schritte mit Spring Boot und dem Spring Framework unternehmen möchten, sowie an erfahrene Spring-Entwickler, die über die Grundlagen hinausgehen und die neuesten Features von Spring kennenlernen wollen.

Wie dieses Buch organisiert ist: eine Roadmap

Das Buch umfasst 19 Kapitel, die in fünf Teile gegliedert sind. Teil I befasst sich mit den grundlegenden Themen für das Erstellen von Anwendungen:

Image       Kapitel 1 führt Spring und Spring Boot ein und zeigt, wie Sie ein Spring-Projekt initialisieren. In diesem Kapitel unternehmen Sie die ersten Schritte und erstellen eine Spring-Anwendung, die Sie im weiteren Verlauf des Buches erweitern und vervollständigen werden.

Image       Kapitel 2 erläutert, wie Sie die Web-Ebene einer Anwendung mit Spring MVC aufbauen. In diesem Kapitel erstellen Sie Controller, die Webanfragen behandeln, und Views, die Informationen im Webbrowser darstellen.

Image       Kapitel 3 beschäftigt sich mit dem Backend einer Spring-Anwendung, wo die Daten in einer relationalen Datenbank persistent gespeichert werden.

Image       In Kapitel 4 nutzen Sie Spring Security, um Benutzer zu authentifizieren und nicht autorisierten Zugriff auf eine Anwendung zu verhindern.

Image       Kapitel 5 macht deutlich, wie Sie eine Spring-Anwendung mit Spring-Boot-Konfigurationseigenschaften konfigurieren. Außerdem lernen Sie, wie Sie eine Konfiguration mithilfe von Profilen selektiv anwenden.

Die Themen in Teil II helfen Ihnen, wenn Sie Ihre Spring-Anwendung mit anderen Anwendungen integrieren:

Image       Kapitel 6 erweitert die in Kapitel 2 begonnene Diskussion zu Spring MVC und zeigt, wie sich REST APIs in Spring schreiben lassen.

Image       Kapitel 7 tauscht die Rollen gegenüber Kapitel 6 und zeigt, wie eine Spring-Anwendung eine REST API konsumieren kann.

Image       Kapitel 8 befasst sich mit asynchroner Kommunikation, damit eine Spring-Anwendung per Java Message Service, RabbitMQ oder Kafka Nachrichten sowohl senden als auch empfangen kann.

Image       In Kapitel 9 geht es um deklarative Anwendungsintegration mit dem Spring-Integration-Projekt.

Teil III ist der neuen Unterstützung für reaktive Programmierung in Spring gewidmet:

Image       Kapitel 10 stellt Project Reactor vor, die reaktive Programmierbibliothek, die die reaktiven Features von Spring 5 untermauert.

Image       Kapitel 11 beschäftigt sich noch einmal mit der REST-API-Entwicklung und führt Spring WebFlux ein, ein neues Web-Framework, das sich stark an Spring MVC orientiert, dabei aber ein neues reaktives Modell für die Web-Entwicklung bietet.

Image       In Kapitel 12 werfen wir einen Blick darauf, wie sich reaktive Datenpersistenz mit Spring Data programmieren lässt, um Daten in und aus den Datenbanken Cassandra und Mongo zu schreiben und zu lesen.

Teil IV zerlegt das monolithische Anwendungsmodell und führt Sie in die Entwicklung mit Spring Cloud und Microservices ein:

Image       Kapitel 13 befasst sich mit dem Erkennen von Diensten, wobei Sie Spring mit der Eureka-Registrierung von Netflix verwenden, um Spring-basierte Microservices sowohl zu registrieren als auch zu erkennen.

Image       In Kapitel 14 zentralisieren Sie die Anwendungskonfiguration auf einem Konfigurationsserver, der die Konfiguration für mehrere Microservices gemeinsam nutzt.

Image       Kapitel 15 führt das Trennschalter-Muster (Circuit Breaker) mit Hystrix ein, das es ermöglicht, Microservices für den Fehlerfall robuster zu machen.

In Teil V bereiten Sie eine Anwendung für die Produktion vor und lernen, wie Sie sie bereitstellen:

Image       Kapitel 16 stellt den Spring Boot Actuator vor, eine Erweiterung zu Spring Boot, mit der sich die Interna einer laufenden Spring-Anwendung als REST-Endpunkte zugänglich machen lassen.

Image       In Kapitel 17 sehen Sie, wie Sie mit Spring Boot Admin eine benutzerfreundliche browserbasierte administrative Anwendung auf Actuator aufsetzen können.

Image       Kapitel 18 erläutert, wie sich Spring-Beans als JMX MBeans zugänglich machen und konsumieren lassen.

Image       Abschließend zeigt Kapitel 19, wie Sie Ihre Spring-Anwendung in den verschiedensten Produktionsumgebungen bereitstellen.

Im Allgemeinen sollten Entwickler, die in Spring einsteigen, mit Kapitel 1 beginnen und alle Kapitel nacheinander durcharbeiten. Erfahrene Spring-Entwickler ziehen es vielleicht vor, gleich mit dem Thema zu beginnen, das sie vorrangig interessiert. Es sei aber darauf hingewiesen, dass jedes Kapitel auf dem vorhergehenden aufbaut, sodass möglicherweise der Kontext unklar ist, wenn Sie gleich in der Mitte des Buches einsteigen.

Über den Code

Dieses Buch enthält viele Beispiele im Quellcode sowohl in nummerierten Listings als auch in Form von Codefragmenten, die in den laufenden Text eingefügt sind. In beiden Fällen ist der Quellcode in Einer-Schreibmaschinenschrift-wie-dieser formatiert, um ihn vom normalen Text zu trennen. Manchmal ist der Code auch fett gedruckt, um ihn von Code abzuheben, der sich gegenüber vorherigen Schritten im Kapitel geändert hat, beispielsweise wenn ein neues Feature zu einer schon vorhandenen Codezeile hinzukommt.

Der Quellcode zu den Beispielen in diesem Buch steht auf der Website des Verlages der Originalausgabe unter www.manning.com/books/spring-in-action-fifth-edition sowie im GitHub-Konto des Autors unter github.com/habuma/spring-in-action-5-samples zum Download bereit.

Buchforum

Beim Kauf dieser Ausgabe von Spring im Einsatz erhalten Sie kostenfreien Zugriff auf ein privates Web-Forum unter Leitung von Manning Publications, in dem Sie Kommentare zum Buch abgeben, technische Fragen stellen und Hilfe vom Autor und von anderen Benutzern erhalten können. Um auf das Forum zuzugreifen, besuchen Sie https://forums.manning.com/forums/spring-in-action-fifth-edition. Mehr über die Foren von Manning und die Verhaltensregeln erfahren Sie auch unter https://forums.manning.com/forums/about.

Manning engagiert sich für die Leser, um ihnen einen Treffpunkt zu bieten, an dem ein sinnvoller Dialog zwischen Lesern untereinander und zwischen dem Leser und dem Autor stattfinden kann. Es handelt sich dabei nicht um eine Verpflichtung dem Autor gegenüber, in einem bestimmten Umfang mitzuwirken, wobei der Beitrag zum Forum freiwillig (und unbezahlt) bleibt. Stellen Sie doch dem Autor herausfordernde Fragen, damit sein Interesse nicht verloren geht! Das Forum und die Archive früherer Diskussionen sind über Website des Verlags zugänglich, solange das Buch lieferbar ist.

Andere Online-Quellen

Brauchen Sie zusätzliche Hilfe?

Image       Die Spring-Website bietet unter https://spring.io/guides mehrere nützliche Leitfäden (von denen der Autor selbst einige geschrieben hat).

Image       Die Tags für Spring auf StackOverflow (https://stackoverflow.com/questions/tagged/spring) und Spring Boot auf StackOverflow sind empfehlenswerte Orte rund um das Thema Spring, um Fragen zu stellen und anderen zu helfen. Gleichzeitig ist es ein guter Weg, um mehr über Spring zu lernen, wenn man anderen bei der Beantwortung ihrer Spring-Fragen hilft!

Über den Autor

Craig Walls ist leitender Ingenieur bei Pivotal. Er ist ein eifriger Förderer des Spring Frameworks, ist häufig in lokalen Benutzergruppen und Konferenzen anzutreffen und schreibt über Spring. Wenn er nicht gerade mit Code um sich wirft, plant Craig seine nächste Reise nach Disney World oder Disneyland und verbringt so viel Zeit wie möglich mit seiner Frau, seinen beiden Töchtern, zwei Vögeln und drei Hunden.

Teil I: Die Grundzüge von Spring

In Teil I dieses Buches schreiben Sie zum Einstieg eine Spring-Anwendung und lernen dabei die Grundlagen von Spring kennen.

Image       Kapitel 1 gibt Ihnen einen kurzen Überblick über die wesentlichen Elemente von Spring und Spring Boot und zeigt, wie Sie ein Spring-Projekt initialisieren, während Sie Taco Cloud, Ihre erste Spring-Anwendung, erstellen.

Image       In Kapitel 2 dringen Sie tiefer in Spring MCV ein und lernen, wie Sie Modelldaten im Browser darstellen und wie Sie Formulareingaben verarbeiten und auf Gültigkeit überprüfen. Außerdem bekommen Sie einige Tipps zur Auswahl einer View-Vorlagenbibliothek.

Image       In Kapitel 3 statten Sie die Taco-Cloud-Anwendung mit Datenpersistenz aus. Dabei lernen Sie die JDBC-Vorlage von Spring kennen und erfahren, wie Sie Daten einfügen und wie Sie JPA-Repositories mit Spring Data deklarieren.

Image       Kapitel 4 befasst sich mit der Sicherheit für Ihre Spring-Anwendung. Dabei geht es um die automatische Konfiguration von Spring Security, das Definieren benutzerdefinierter Benutzerspeicher, die Anpassung der Anmeldeseite und die Absicherung gegen CSRF-(Cross-Site-Request-Forgery-)Angriffe.

Image       Zum Abschluss von Teil I geht Kapitel 5 auf Konfigurationseigenschaften ein. Hier lernen Sie, wie Sie automatisch konfigurierte Beans optimieren, Konfigurationseigenschaften auf Anwendungskomponenten anwenden und mit Spring-Profilen arbeiten.

1 Erste Schritte mit Spring