Sie sind hier
E-Book

Spring Boot 2

Moderne Softwareentwicklung mit Spring 5

AutorMichael Simons
Verlagdpunkt
Erscheinungsjahr2018
Seitenanzahl460 Seiten
ISBN9783960883890
FormatePUB
KopierschutzWasserzeichen
GerätePC/MAC/eReader/Tablet
Preis28,99 EUR
Spring Boot hat seit 2014 das Spring-Ökosystem revolutioniert und verdrängt in zunehmendem Maße 'klassische' Spring-Anwendungen. Spring Boot ist kein neues Framework, sondern basiert auf Spring und dem Spring-Ökosystem. Es vereinfacht die Verwaltung von Abhängigkeiten und die Konfiguration des Spring- Frameworks. Spring Boot löst dabei Probleme, die einer effektiven und effizienten Produktivsetzung im Weg stehen, und bietet vielfältige Möglichkeiten, testgetrieben zu entwickeln. Spring Boot sollte die erste Wahl sein, Springbasierte Anwendungen zu entwickeln, unabhängig davon, ob es sich um Microservices handelt oder nicht. Dieses Buch bietet eine umfassende Einfu?hrung in die von Spring Boot unterstu?tzten Spring-Module und -Technologien: - Webanwendungen - Reaktive Anwendungen - Security - Datenbanktechnologien - Caching - Tests und DokumentationDaru?ber hinaus stellt es verschiedene Möglichkeiten vor, Spring-Boot-Anwendungen zu deployen, sowohl in klassischen als auch in Cloud- Szenarien. Hinweise auf Best Practices sowie eine Übersicht der zahlreichen Änderungen von Spring Boot 1 auf Version 2 runden das Buch ab.

Michael Simons ist zweifacher Vater, Ehemann, Geek und leidenschaftlicher Fahrradfahrer. Er entwickelt seit u?ber 15 Jahren Software im Java-Umfeld, seit sieben Jahren mit Spring. Michael ist Mitglied des NetBeans Dream Team und Gru?nder der Euregio JUG. Er schreibt in seinem Blog info.michael-simons.eu u?ber Java, Spring und Softwarearchitektur. Michael arbeitet als Senior Consultant bei innoQ Deutschland.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

Vorwort


Das Spring-Framework


Das Spring-Framework wurde 2002 erstmals als Idee vorgestellt und ein Jahr später unter dem Namen Spring-Framework als quelloffenes Projekt veröffentlicht. Das Ziel – damals wie heute – ist, die Entwicklung mit Java zu vereinfachen und gute Programmierpraktiken zu fördern.

Infrastruktur auf Anwendungsebene ist eines der Schlüsselelemente von Spring. Springs Fokus liegt ganz klar auf Bereitstellung und Konfiguration nichtfunktionaler Anforderungen, so dass Entwickler von Anwendungen sich auf ihre eigentliche Aufgabe, Implementierung der Geschäftslogik, konzentrieren können.

Kernfunktionen von Spring sind dabei:

  • Dependency Injection
  • MVC-basierte Webanwendungen und RESTful Webservices
  • Grundlagen für JDBC, JPA und vieles mehr
  • aspektorientierte Programmierung und deklarative Behandlung von Transaktionen

Der Umfang an Funktionalität ist seit 2003 kontinuierlich gewachsen, die Möglichkeiten, eine Spring-basierte Anwendung zu konfigurieren und in Betrieb zu nehmen, ebenso.

Spring Boot ist in diesem Kontext kein neues Framework, sondern eine Sicht auf die Spring-Platform, die es ermöglicht, eigenständige und produktionsreife Anwendungen auf Basis des beschriebenen Spring-Frameworks zu bauen, die unter anderem folgende Eigenschaften haben:

  • eigenständige Anwendungen, die keine externen Laufzeitabhängigkeiten mehr haben
  • eingebettete Container (zum Beispiel Tomcat, Jetty oder Undertow), so dass keine War-Dateien verteilt werden müssen
  • automatische Konfiguration soweit möglich
  • Bereitstellung von nicht funktionalen Eigenschaften, die zur Produktion in der Regel benötigt werden: Metriken, Health Checks und externe Konfiguration
  • keinerlei Generierung von Code oder Konfiguration

Warum Spring Boot?


Spring Boot basiert vollständig auf dem Spring-Framework. Es wurde mit dem Ziel erschaffen, die Entwicklung eigenständig lauffähiger Anwendungen mit dem Spring-Framework drastisch zu erleichtern. Convention over configuration sowie wenige, bekannte Annotationen reichen aus, um Artefakte zu erzeugen, die alle benötigten Abhängigkeiten mitbringen und extern konfigurierbar sind. Die Schwelle, mehr als eines dieser Artefakte zu erzeugen und zu verteilen, ist deutlich geringer und Grundlage erfolgreicher Verteilung von Microservices.

Schneller Start

Mit sogenannten »Startern« ist es möglich, die Konfiguration des Builds erheblich zu vereinfachen. Durch Deklaration einer einzigen Abhängigkeit wird zum Beispiel die Unterstützung einer Template-Sprache bereitgestellt, inklusive benötigter Abhängigkeiten und Konfiguration.

Testdriven

Spring Boot bietet herausragende Möglichkeiten, die technischen Schichten einer Anwendung, zum Beispiel Persistenz- und Webschicht, getrennt voneinander zu testen und die Ergebnisse dieser Tests anschließend zu Dokumentationszwecken zu nutzen. Ein nicht unerheblicher Gewinn, um sauberen Code zu schreiben.

Spring Boot liebt Microservices.

Darüber hinaus hat sich um Spring Boot, insbesondere durch die Firma Netflix, ein weiteres Ökosystem an Komponenten aufgetan, das insbesondere auf die Entwicklung verteilter, widerstandsfähiger (»resilient«) Microservices zielt. Machen Sie aber bitte nicht den Fehler und betrachten Spring Boot als »Microservice«-Framework. Sie können mit Spring Boot Teile von Anwendungssystemen auf Basis einer Microservice-Architektur bauen, aber Spring Boot ist deutlich mehr als ein »Microservice«-Framework.

Spring Boot und Cloud-native Java


Im Umfeld von Spring Boot hören Sie oft die Begriffe Cloud-native und 12-Factor-App. Die Firma Pivotal erklärt den Begriff Cloud-native-Anwendungen als Anwendungen, die speziell mit dem Cloud-Modell im Hintergrund entworfen wurden und von kleinen Teams mit Fokus auf einzelnen Features entwickelt, deployt und betrieben werden. Skalierbare Infrastruktur, flexible Zielplattformen, Entwickler, die sich auf Features anstelle von Boilerplate-Code konzentrieren können, und ein Betrieb, der sich am Geschäftsbedarf orientiert, sind heute noch Wettbewerbsvorteile, in naher Zukunft wohl eher Standard. Die folgenden Themen beschreiben Kernaspekte einer Cloud-native-Anwendung:

  • Entwicklung und Betrieb arbeiten Hand in Hand zusammen, so dass Builds, Tests und Releases oft und zuverlässig durchgeführt werden (»DevOps«),
  • Continuous Delivery, um einzelne Aspekte freigeben und veröffentlichen zu können, wenn sie fertig sind,
  • Microservices als architektonischer Ansatz, um Anwendungen als Sammlung kleiner Dienste zu strukturieren, die unabhängig voneinander verteilt, aktualisiert und skaliert werden können, und
  • Container als Laufzeitumgebung, die ähnlich schnell wie ein Microservice gestartet, skaliert und gestoppt werden können

Die 12-Factor-App als Methode beschreibt Anwendungen, mit denen die Vorteile einer Cloud-native-Umgebung ausgenutzt werden können, und wurde als Manifest unter 12factor.net von Entwicklern der Heroku-Plattform (https://www.heroku.com) in mehreren Sprachen veröffentlicht. Ihr Ziel war es, ideale Praktiken für die Entwicklung von Anwendungen zu schaffen, die wiederkehrende Probleme im Hinblick auf Konfiguration, Portierbarkeit, Verteilung und Skalierung von verteilten Anwendungen verhindern.

Viele Konzepte sind in die Gestaltung von Spring Boot eingeflossen und helfen dabei, Spring Boot zu einer idealen Plattform von Cloud-native-Anwendungen zu machen. Nach der Lektüre des Kapitels können Sie einige der Designentscheidungen Spring Boots besser nachvollziehen. Die Kenntnis der Idee der 12-Factor-Anwendung hilft Ihnen, einige Defaults von Spring Boot besser zu verstehen und sie – falls notwendig – bewusst anders zu konfigurieren.

Einige der Faktoren, die Sie ziemlich klar in Spring Boot wiederfinden, sind:

  • Explizite und vollständige Deklaration von Abhängigkeiten. Spring Boot macht dies zu großen Teilen über das Konzept sogenannter »Starter«, denen Sie im Folgenden sehr häufig begegnen werden.
  • Die externe Konfiguration einer Anwendung erfolgt nicht über Code, sondern der »reinen Lehre« nach nur über Umgebungsvariablen. Spring Boot geht einen Schritt weiter: Spring-Boot-Anwendungen können sehr leicht über Umgebungsvariablen konfiguriert werden, aber ähnlich effektiv auch durch Profile. Profile bündeln verschiedene, zusammengehörende Einstellungen für ein Ziel-Deployment (zum Beispiel staging, test, prod und andere). Die konkreten Parameter der Profile sind dabei Teil des Artefakts, die Profile selber werden üblicherweise über die Umgebung aktiviert. Wichtig ist jedoch, dass es niemals notwendig sein sollte, eine Anwendung für ein einzelnes Ziel auf spezielle Art und Weise zu bauen. Die durch Spring Boot geschaffenen Möglichkeiten externer Konfiguration, die in Kapitel 4 besprochen werden, sind immens wichtig, um Anwendungen zu erstellen, die genau diesen Anspruch erfüllen. Gleiches gilt für intelligente »Magie«, die es in vielen Fällen erlaubt, komplett auf explizite Konfiguration zu verzichten und nur anhand der Umgebung zu entscheiden, welche Konfiguration sinnvoll ist oder nicht (Kapitel 5).
  • Unterstützende Dienste wie Datenbanken und dergleichen sollen als »angehängte« Ressourcen betrachtet werden: Der Code einer 12-Factor-Anwendung macht keinen Unterschied zwischen lokalen Diensten oder den Diensten Dritter. Diese Aspekte werden Sie in Kapitel 18 wiederfinden.
  • Zum Thema »Logging« wird folgende Aussage gemacht: Eine 12-Factor-Anwendung betrachtet Logs als Strom von Ereignissen. Das Ziel dieser Ereignisse ist irrelevant für eine 12-Factor-Anwendung. Sie schreibt ihre Logging-Ereignisse in der Regel nach stdout. In Kapitel 6 »Logging« wird ganz klar dieser Einfluss auf Spring Boot deutlich: Es gibt sehr einfache und schöne Möglichkeiten, das Format und die Detailtiefe (Level) der einzelnen Logs zu konfigurieren, das Ziel ist aber in der Regel die Standardausgabe.

Eine 12-Factor-App ist noch lange keine »perfekte« Anwendung, und die 12 Faktoren machen erst recht keine Aussage über ein Anwendungssystem, sind aber ein wesentlicher Bestandteil von Cloud-native-Anwendungen. Sie helfen, sowohl die Anwendung selber als auch die Entwicklung ohne wesentliche Änderungen im Tooling und der Architektur zu skalieren, maximale Portierbarkeit zwischen verschiedenen Ausführungsumgebungen zu erreichen und die Kluft zwischen Entwicklung und Produktion zu minimieren.

Warum dieses Buch?


Die Referenzdokumentation von Spring Boot ist ebenso wie die des Spring-Frameworks selber ausgesprochen gut, und es gibt eine Vielzahl von Einführungen für unterschiedliche Themen. Warum also noch ein...

Blick ins Buch

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

Augenblick mal

Augenblick mal

Die Zeitschrift mit den guten Nachrichten "Augenblick mal" ist eine Zeitschrift, die in aktuellen Berichten, Interviews und Reportagen die biblische Botschaft und den christlichen Glauben ...

cards Karten cartes

cards Karten cartes

Die führende Zeitschrift für Zahlungsverkehr und Payments – international und branchenübergreifend, erscheint seit 1990 monatlich (viermal als Fachmagazin, achtmal als ...

Der Steuerzahler

Der Steuerzahler

Der Steuerzahler ist das monatliche Wirtschafts- und Mitgliedermagazin des Bundes der Steuerzahler und erreicht mit fast 230.000 Abonnenten einen weitesten Leserkreis von 1 ...

DULV info

DULV info

UL-Technik, UL-Flugbetrieb, Luftrecht, Reiseberichte, Verbandsinte. Der Deutsche Ultraleichtflugverband e. V. - oder kurz DULV - wurde 1982 von ein paar Enthusiasten gegründet. Wegen der hohen ...

elektrobörse handel

elektrobörse handel

elektrobörse handel gibt einen facettenreichen Überblick über den Elektrogerätemarkt: Produktneuheiten und -trends, Branchennachrichten, Interviews, Messeberichte uvm.. In den monatlichen ...