8 Einführung in Spring Boot

Spring Boot ist ein Projekt innerhalb des größeren Spring Frameworks, das darauf abzielt, die Entwicklung von neuen Spring-Anwendungen zu vereinfachen. Es bietet eine Reihe von Konventionen und Voreinstellungen (sogenannte “Opinionated Defaults”), die es Entwicklern ermöglichen, schnell und mit minimaler Konfiguration zu starten. Hier sind die Hauptziele und Vorteile von Spring Boot im Überblick:

Spring Boot zielt darauf ab, die Zeit von der Idee bis zur produktionsreifen Anwendung zu verkürzen, indem es die Komplexität traditioneller Spring-Anwendungen reduziert und es Entwicklern ermöglicht, sich auf ihre Geschäftslogik zu konzentrieren. Es ist ideal für Microservices-Architekturen sowie für monolithische Anwendungsstrukturen geeignet.

8.1 Kernfunktionen von Spring Boot

Spring Boot bietet eine breite Palette von Funktionen, die das Entwickeln von Spring-Anwendungen vereinfachen. Hier konzentrieren wir uns auf zwei Schlüsselfunktionen: Auto-Konfiguration und den eingebetteten Server.

8.2 Auto-Konfiguration

Eine der zentralen Eigenschaften von Spring Boot ist seine Fähigkeit zur Auto-Konfiguration. Diese Funktion versucht, die Konfiguration einer Anwendung basierend auf den vorhandenen Klassen im Classpath automatisch zu erstellen. Das bedeutet, dass Spring Boot beispielsweise automatisch eine Datenquelle konfiguriert, wenn es eine Datenbankverbindungs-Bibliothek auf dem Classpath findet, oder einen Spring MVC-Webkontext konfiguriert, wenn Spring Web MVC verfügbar ist.

Die Auto-Konfiguration wird primär durch @Conditional-Annotationen gesteuert, die es Spring Boot ermöglichen, bestimmte Konfigurationen nur dann anzuwenden, wenn die entsprechenden Bedingungen erfüllt sind. Entwickler können die Auto-Konfiguration übernehmen oder bei Bedarf überschreiben, indem sie ihre eigene Konfiguration bereitstellen.

8.3 Eingebetteter Server

Spring Boot-Anwendungen benötigen keinen externen Webserver. Stattdessen können sie mit einem eingebetteten Webserver geliefert werden, wodurch die Bereitstellung und das Starten der Anwendung erheblich vereinfacht werden. Spring Boot unterstützt eingebettete Server wie Tomcat, Jetty und Undertow.

Die Wahl des Servers kann über die Abhängigkeiten im Build-Konfigurationsfile gesteuert werden, und Spring Boot konfiguriert den ausgewählten Server dann automatisch. Dies ermöglicht es Entwicklern, Webanwendungen zu erstellen, die als eigenständige JAR-Dateien ausgeführt werden können, ohne eine separate Webserver-Installation zu benötigen.

8.4 Nutzung von Spring Boot Starters

Um die Auto-Konfiguration und die Bereitstellung des eingebetteten Servers zu erleichtern, bietet Spring Boot eine Reihe von “Starters”. Dies sind vorkonfigurierte Gruppen von Abhängigkeiten, die alles enthalten, was für einen bestimmten Anwendungstyp benötigt wird. Beispielsweise fügt der Starter spring-boot-starter-web alle Abhängigkeiten hinzu, die für die Erstellung einer Webanwendung erforderlich sind, einschließlich des eingebetteten Tomcat-Servers und Spring MVC.