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.
Copyright für die deutsche Ausgabe:
© 2020 Carl Hanser Verlag, www.hanser-fachbuch.de
Lektorat: Brigitte Bauer-Schiewek
Copy editing: Petra Kienle, Fürstenfeldbruck
Layout: Manuela Treindl, Fürth
Umschlagdesign: Marc Müller-Bremer, München, www.rebranding.de
Umschlagrealisation: Max Kostopoulos
Titelmotiv: © Stephan Rönigk
Ausstattung patentrechtlich geschützt. Kösel FD 351, Patent-Nr. 0748702
Print-ISBN: 978-3-446-45512-2
E-Book-ISBN: 978-3-446-45731-7
E-Pub-ISBN: 978-3-446-46323-3
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.
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.
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:
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.
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.
Kapitel 3 beschäftigt sich mit dem Backend einer Spring-Anwendung, wo die Daten in einer relationalen Datenbank persistent gespeichert werden.
In Kapitel 4 nutzen Sie Spring Security, um Benutzer zu authentifizieren und nicht autorisierten Zugriff auf eine Anwendung zu verhindern.
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:
Kapitel 6 erweitert die in Kapitel 2 begonnene Diskussion zu Spring MVC und zeigt, wie sich REST APIs in Spring schreiben lassen.
Kapitel 7 tauscht die Rollen gegenüber Kapitel 6 und zeigt, wie eine Spring-Anwendung eine REST API konsumieren kann.
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.
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:
Kapitel 10 stellt Project Reactor vor, die reaktive Programmierbibliothek, die die reaktiven Features von Spring 5 untermauert.
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.
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:
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.
In Kapitel 14 zentralisieren Sie die Anwendungskonfiguration auf einem Konfigurationsserver, der die Konfiguration für mehrere Microservices gemeinsam nutzt.
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:
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.
In Kapitel 17 sehen Sie, wie Sie mit Spring Boot Admin eine benutzerfreundliche browserbasierte administrative Anwendung auf Actuator aufsetzen können.
Kapitel 18 erläutert, wie sich Spring-Beans als JMX MBeans zugänglich machen und konsumieren lassen.
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.
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.
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.
Brauchen Sie zusätzliche Hilfe?
Die Spring-Website bietet unter https://spring.io/guides mehrere nützliche Leitfäden (von denen der Autor selbst einige geschrieben hat).
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!
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.
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.
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.
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.
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.
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 |