Navigation überspringen

Was ist Java Spring Boot?

Eine Einführung in Spring Boot – das beliebte, Java-basierte Tool für die Entwicklung von Web-Apps und Microservices

Was ist Spring Boot?

Für jede Definition von Spring Boot muss das Gespräch mit Java beginnen – eine der beliebtesten und am weitesten verbreiteten Entwicklungssprachen und Computerplattformen für die App-Entwicklung. Entwickler auf der ganzen Welt beginnen ihre Reise in die Programmierung mit Java. Java ist flexibel und benutzerfreundlich und wird von Entwicklern gerne für eine Vielzahl von Anwendungen eingesetzt – von Social Media-, Web- und Spieleanwendungen bis hin zu Netzwerk- und Unternehmensanwendungen.

Java und das Spring-Framework

Java mag zwar einfach zu bedienen und leichter zu erlernen sein als andere Sprachen, aber die Komplexität beim Erstellen, Debuggen und Bereitstellen von Java-Anwendungen ist in schwindelerregende Höhen gestiegen. Das liegt an der exponentiellen Anzahl von Variablen, mit denen moderne Entwickler konfrontiert werden, wenn sie Webanwendungen oder mobile Anwendungen für gängige moderne Technologien wie Musikstreaming oder mobile Bargeldzahlungsanwendungen entwickeln. Ein Entwickler, der eine einfache branchenspezifische App schreibt, muss sich jetzt mit mehreren Bibliotheken, Plugins, Bibliotheken zur Fehlerprotokollierung und -behandlung, Integrationen mit Webdiensten und mehreren Sprachen wie C#, Java, HTML und anderen auseinandersetzen. Verständlicherweise gibt es eine unstillbare Nachfrage nach allen Tools, die die Entwicklung von Java-Apps rationalisieren und den Entwicklern Zeit und Geld sparen.

Hier kommen die Anwendungs-Frameworks ins Spiel – große Mengen an vorformuliertem Code, den Entwickler je nach Bedarf verwenden und zu ihrem eigenen Code hinzufügen können. Diese Frameworks entlasten die Entwickler bei fast allen Anforderungen – ob sie nun mobile und Webanwendungen entwickeln oder mit Desktops und APIs arbeiten. Frameworks machen die Entwicklung von Anwendungen schneller, einfacher und sicherer, indem sie wiederverwendbaren Code und Tools bereitstellen, die die verschiedenen Elemente eines Softwareentwicklungsprojekts miteinander verbinden.

Hier kommt Spring ins Spiel: Spring ist ein Open-Source-Projekt, das einen rationalisierten, modularen Ansatz für die Erstellung von Anwendungen mit Java bietet. Die Familie der Spring-Projekte entstand 2003 als Reaktion auf die Komplexität der frühen Java-Entwicklung und bietet Unterstützung für die Entwicklung von Java-Anwendungen. Der Name Spring allein bezieht sich in der Regel auf das Anwendungsframework selbst oder auf die gesamte Gruppe der Projekte oder Module. Spring Boot ist ein spezielles Modul, das als Erweiterung des Spring-Frameworks entwickelt wird.

Mit diesem Hintergrundwissen über das Zusammenspiel von Spring-Framework, Spring Boot und Java folgt nun die Definition von Spring Boot – dem Tool, das die Entwicklung von Webanwendungen und Microservices innerhalb des Java-Frameworks Spring rationalisiert und beschleunigt.

Da es sich bei der Sprache und/oder Plattform um Java handelt, wird es manchmal auch als „Java Spring Boot“, das „Java Spring-Framework“ oder das „Spring Boot-Framework“ bezeichnet. Da es jedoch auch andere Frameworks von Drittanbietern für Java gibt, wie z. B. Play und Hibernate, ist es genauer, von „Spring“ und „Spring Boot“ zu sprechen.

Eine allgemeine Diskussion über Java-Grundlagen finden Sie im Artikel Was ist Java?

Was ist der Unterschied zwischen Spring und Spring Boot?

Wie bereits erwähnt, ist Spring ein Open-Source, Java-basiertes App-Framework, das viele kleinere Projekte unter seinem Dach vereint. Andere beliebte Spring-Projekte sind Spring Data, Spring Cloud und Spring Security, um nur einige zu nennen. Um den Unterschied zwischen Spring Boot und Spring zu verstehen, ist es wichtig zu wissen, dass trotz der Unterschiede bei den Kernfunktionen alles zur Spring-Familie gehört

Um die Unterschiede zwischen Spring Boot und Spring vollständig zu verstehen, müssen wir zunächst ein paar Schlüsselbegriffe definieren.

Was sind Microservices?

Microservices sind ein Ansatz für die Architektur der Softwareentwicklung. Das "Micro" in Microservices bezieht sich darauf, dass der Code in kleinen, überschaubaren Stücken oder Komponenten geliefert wird. Jeder "Service" oder jede Kernfunktion wird unabhängig von den anderen Services erstellt und bereitgestellt. Die unabhängigen Komponenten arbeiten zusammen und kommunizieren über vorgeschriebene API-Dokumente, die sogenannten Verträge. Der geringe Umfang und die relative Isolierung dieser Microservices hat viele Vorteile. Da diese Art von Architektur verteilt und lose gekoppelt ist, bricht zum Beispiel nicht die gesamte Anwendung zusammen, wenn eine Komponente ausfällt. Weitere Vorteile sind eine höhere Produktivität, eine einfachere Wartung, eine bessere Ausrichtung des Unternehmens und eine höhere Fehlertoleranz.

Was ist Abhängigkeitsinjektion?

Die Abhängigkeitsinjektion (Dependency Injection, DI) ist eine Entwurfstechnik, mit der die Inversion der Kontrolle (IoC) erreicht werden kann. In der objektorientierten Programmierung wie Java werden Objekte, die von anderen Objekten abhängen, als Abhängigkeiten bezeichnet. Normalerweise wird das empfangende oder abhängige Objekt als Client bezeichnet und das Objekt, von dem der Client abhängig ist, als Dienst. Bei der Abhängigkeitsinjektion wird der Dienst also an den Client weitergegeben oder die Abhängigkeit mit Hilfe von Code, der als Injektor bezeichnet wird, „injiziert“. Mit DI muss der Client nicht mehr angeben, welcher Dienst verwendet werden soll – der Injektor übernimmt diese Arbeit für den Client.

Was ist Konvention über Konfiguration?

Konvention über Konfiguration, manchmal auch Kodierung nach Konvention genannt, ist ein Konzept, das in Anwendungs-Frameworks verwendet wird, um die Anzahl der Entscheidungen zu reduzieren, die ein Entwickler treffen muss. Es folgt dem Prinzip „Sich nicht wiederholen“, um das Schreiben von redundantem Code zu vermeiden. Kodierung nach Konvention versucht, die Flexibilität zu erhalten, während ein Entwickler nur für die unkonventionellen Aspekte der Anwendung, die er erstellt, Code schreiben muss. Wenn das gewünschte Verhalten der Anwendung mit den festgelegten Konventionen übereinstimmt, wird die Anwendung einfach standardmäßig ausgeführt, ohne dass Konfigurationsdateien geschrieben werden müssen. Der Entwickler muss nur dann explizit Konfigurationsdateien schreiben, wenn das gewünschte Verhalten von der „Konvention“ abweicht.

Spring-Framework im Vergleich zu Spring Boot

Da Spring Boot auf den Vorteilen des Spring-Frameworks basiert, handelt es sich nicht wirklich um eine „entweder/oder“-Frage des Spring-Frameworks im Vergleich zu Spring Boot, sondern um einen „beide/und“-Vorteil. Spring und Spring Boot gehen Hand in Hand:

Nicht verfügbar Spring Spring Boot
Was ist das? Ein auf Java basierendes Open-Source-Webanwendungsframework. Eine Erweiterung oder ein Modul, die bzw. das auf dem Spring-Framework erstellt wurde.
Was macht sie? Bietet eine flexible, vollständig konfigurierbare Umgebung mithilfe von Tools und Bibliotheken von vordefiniertem Code, um benutzerdefinierte, lose gekoppelte Web-Apps zu erstellen. Bietet die Möglichkeit zum Erstellen eigenständiger Spring-Anwendungen, die einfach sofort ausgeführt werden können, ohne dass Anmerkungen, XML-Konfigurationen oder viele zusätzlichen Code geschrieben werden müssen.
Wann sollte ich es verwenden?

Verwenden Sie Spring bei Bedarf:

  • Flexibilität
  • Ein nichtmeinungsbezogener Ansatz.*
  • Entfernen von Abhängigkeiten aus Ihrem benutzerdefinierten Code.
  • Implementieren einer sehr eindeutigen Konfiguration.
  • Entwickeln von Unternehmensanwendungen.

Verwenden Sie Spring Boot bei Bedarf:

  • Einfache Nutzung
  • Ein meinungsbezogener Ansatz.*
  • Hochwertige Apps schnell ausführen und die Entwicklungszeit verkürzen.
  • Vermeiden das Schreiben von Skriptcode oder das Konfigurieren von XML.
  • Entwickeln von REST-APIs.
Was ist das Hauptfeature? Abhängigkeitsinjektion Autom. Konfiguration
Verfügt es über eingebettete Server? Nein. In Spring müssen Sie die Server explizit einrichten. Ja. Spring Boot enthält integrierte HTTP-Server wie Tomcat und Jetty.
Wie wird es konfiguriert? Das Spring-Framework bietet Flexibilität, die Konfiguration muss jedoch manuell erstellt werden. Spring Boot konfiguriert Spring und andere Drittanbieterframeworks automatisch nach dem Standardprinzipal „Konvention über Konfiguration“.
Muss ich wissen, wie ich mit XML arbeiten kann? In Spring sind Kenntnisse der XML-Konfiguration erforderlich. Spring Boot erfordert keine XML-Konfiguration.
Gibt es CLI-Tools für Entwicklungs-/Test-Apps? Das Spring-Framework allein stellt keine CLI-Tools zum Entwickeln oder Testen von Apps bereit. Als Spring-Modul verfügt Spring Boot über ein CLI-Tool zum Entwickeln und Testen von Spring-basierten Anwendungen.
Funktioniert es mit einem meinungsbezogenen oder nichtmeinungsbezogenen Ansatz? Nichtmeinungsbezogen* Meinungsbezogen*

*Meinungsbezogener im Vergleich zu nichtmeinungsbezogenem Framework-Ansatz

Auch wenn das Wort „meinungsbezogen“ vage negativ klingen mag, haben sowohl der meinungsbezogene Ansatz von Spring Boot als auch das nicht meinungsbezogene Spring-Framework ihre Vorteile.

Meinungsbezogener Ansatz

Ein meinungsbezogener Ansatz vertritt den Standpunkt, dass es einen Weg gibt, der wesentlich einfacher ist als alle anderen. Die Software schränkt die Designer von vornherein ein und ermutigt sie, die Dinge auf die vorgegebene Weise zu tun.

Es bietet einen gut gepflasterten Weg, eine bewährte Praxis, die für die meisten Menschen in den meisten Situationen funktioniert. Die App wird in enger Anlehnung an diese bewährten Methoden und weit verbreiteten Konventionen geschrieben. Ein meinungsbezogener Ansatz macht die Zusammenarbeit und die Hilfe bei einem Programmierprojekt sehr viel einfacher – andere Entwickler, die Erfahrung mit diesem Framework haben, sind sofort mit der neuen App vertraut und können sofort mitmachen.

Nichtmeinungsbezogener Ansatz

Ein nichtmeinungsbezogener Ansatz wird gewählt, wenn alle Lösungen ungefähr den gleichen Aufwand oder die gleiche Komplexität erfordern. Er vertritt den Standpunkt, dass es keinen einzigen richtigen Weg gibt, um ein Problem zu lösen. Vielmehr stellt es flexible Tools zur Verfügung, die zur Lösung des Problems auf viele Arten eingesetzt werden können. Nicht rechthaberische Frameworks haben den Vorteil, dass sie viel Flexibilität bei der Entwicklung bieten und den Entwicklern mehr Kontrolle geben. Der größte Nachteil bei so viel Flexibilität ist, dass der Entwickler mehr Entscheidungen treffen muss und am Ende möglicherweise mehr Code schreiben muss, weil das Framework so offen und eben nichtmeinungsbezogen ist.

Features und Vorteile von Spring Boot

Schließlich der spannende Teil – die Kernfunktionen, die Spring Boot über das Spring-Framework hinaus bietet. Spring Boot bietet eine einfachere und schnellere Möglichkeit, um Anwendungen einzurichten, zu konfigurieren und auszuführen. Damit entfällt die mühsame Konfiguration, die für die Einrichtung der meisten Spring-basierten Anwendungen erforderlich ist. Entwickler können sofort loslegen und Spring Boot verwenden, ohne das zugrunde liegende Spring-Framework erlernen zu müssen.

Hier erfahren Sie, wie Spring Boot-Features helfen, Java-Programmieraufgaben zu optimieren. Einige wichtige Features von Spring Boot sind:

  • Eigenständige Anwendungen – Spring Boot hilft bei der Erstellung von Anwendungen, die nicht an eine bestimmte Plattform gebunden sind und die lokal auf einem Gerät ohne Internetverbindung oder andere installierte Dienste ausgeführt werden können, um funktionsfähig zu sein.
  • Eingebettete Server – mit Spring Boot können Sie Server wie Tomcat, Jetty oder Undertow direkt einbetten.
  • Meinungsbezogener Ansatz – Spring Boot vereinfacht Buildkonfigurationen, indem es meinungsbezogene Startabhängigkeiten bereitstellt.
  • Autom. Konfiguration – Spring Boot konfiguriert Spring und andere Drittanbieterbibliotheken nach Möglichkeit automatisch.
  • Produktionsbereite Features – Spring Boot bietet produktionsbereite Features wie Metriken, Integritätsprüfungen und eine externe Konfiguration.

Vorteile von Spring Boot

Spring Boot:

  • Verringerung der Entwicklungszeit und Steigerung der Produktivität – Spring Boot macht die Entwicklung von Spring-basierten Anwendungen mit Java viel einfacher. Durch den gut durchdachten Ansatz für das Spring-Framework wird der Zeitaufwand für Entscheidungen und sich wiederholende Aufgaben verringert und befreit Uptime, um sich auf das Erstellen und Testen der Anwendungen zu konzentrieren.
  • Verringert die Notwendigkeit, Boilerplate-Code, Anmerkungen und XML-Konfiguration zu schreiben – Entwickler müssen keinen Code generieren oder XML konfigurieren oder sogar das Spring-Framework erlernen, wenn sie dies nicht möchten.
  • Integriert Apps in die Spring-Projektfamilie – Spring Boot-Apps integrieren sich nahtlos in andere Projekte im Spring-Framework-Ökosystem, z. B. Spring Data, Spring Cloud, Spring Security, sowie in andere vertrauenswürdige Clouddienste wie Microsoft Azure Spring Cloud.
  • Stellt Dev/Test Tools bereit – mit dem Befehlszeilenschnittstellentool (CLI) Spring Boot und eingebetteten HTTP-Servern ist es sehr einfach, Umgebungen für entwicklungs-/testbasierte Apps zu erstellen.
  • Bietet Plug-Ins und Tools, um die Entwicklung zu vereinfachen – Spring Boot bietet Plug-Ins für die Arbeit mit In-Memory-Datenbanken sowie andere gängige Buildautomatisierungstools wie Apache Maven.

Java Spring Boot-Tutorials

Wenn Sie bereits mit der Erstellung von Anwendungen mit dem Spring-Framework vertraut sind, wird es Ihnen wahrscheinlich leicht fallen, Spring Boot mithilfe der Tutorials, Projektstarter und der Dokumentation in diesem Abschnitt zu erlernen. Wenn Sie es eilig haben, Spring Boot zu verwenden, aber das Framework noch nicht kennen, haben wir eine gute Nachricht für Sie: Es ist möglich, Spring Boot zu erlernen – und damit zu arbeiten – bevor Sie das Spring-Framework erlernen, da Sie viele der Grundlagen des Frameworks im Laufe der Zeit erlernen werden. Damit lernen Sie zwar nicht alles, was es über das Framework zu wissen gibt, aber Sie haben einen guten Vorsprung, wenn Sie sich später dafür entscheiden, es zu lernen.

Ein weiterer Vorteil des Erlernens von Spring Boot besteht darin, dass die App-Entwicklung nicht nur viel schneller und effizienter wird, sondern dass Sie auch in der Lage sind, andere Spring-Funktionen zu nutzen, nämlich Spring Data, Project Reactor und Spring Security.

Es wird Ihnen jedoch leichter fallen, Ihr erstes Spring Boot-Tutorial durchzuarbeiten, wenn Sie zunächst lernen, wie die grundlegenden Konzepte der Injektion von Abhängigkeiten und der Umkehrung der Kontrolle im Spring-Framework funktionieren. Hier ist ein Überblick auf hohem Niveau:

Abhängigkeitsinjektion

  • XML-basiert, d. h. <beans/> und <namespace:*/>
  • Anmerkungsbasiert, d. h. @Component, @Autowired, @Inject
  • Java-basiert, d. h. @Configuration-Klassen, @Bean-Methoden

Inversion der Steuerung (IoC)

  • ApplicationContext – die Stammschnittstelle, die als Spring IoC-Container fungiert
  • BeanFactory – die Schnittstelle für den Zugriff auf den Spring-Container
  • Beans – die von ApplicationContext instanziierten, zusammengesetzten und verwalteten Objekte

Spring Boot-Tutorials für Anfänger

Wenn Sie die Grundlagen gemastert haben, sollten Sie sich den vollständig verwalteten Azure Spring Cloud-Dienst von Microsoft und VMware ansehen, wenn Sie Spring Boot-Apps im gewünschten Umfang erstellen und bereitstellen möchten.

Erstellen und Schützen einer Java-App

Erstellen Sie eine Java-App mit Spring Initializr unter Verwendung des Spring Boot-Starters für Azure Active Directory (Azure AD).

Bereitstellen Ihrer ersten App für Azure Spring Cloud

Erfahren Sie, wie Sie eine einfache Spring Boot-App erstellen, bereitstellen und überwachen, die mit Spring Initializr erstellt wurde.

Erstellen eines einfachen Spring Boot-Microservices

Erstellen und bereitstellen Sie einen einfachen Microservice – und lernen Sie dann, ihn mit Spring Cloud-Technologien zu erweitern.

Weitere Spring Boot-Starter

Fügen Sie Ihren Spring Boot-Apps Speicher-, Sicherheits-, Authentifizierungs- und Schlüsseltresorfunktionen hinzu.

Häufig gestellte Fragen

  • Spring Boot ist ein Open-Source-, Microservice-basiertes Java-Webframework, das von Spring angeboten wird und insbesondere für Softwaretechniker nützlich ist, die Web-Apps und Microservices entwickeln.

    Weitere Informationen

  • "Spring Boot in Java" ist eine weitere Möglichkeit "Java Spring Boot" zu sagen – die beiden Begriffe können austauschbar verwendet werden. Java ist die Sprache und Plattform, Spring ist das auf Java basierende Anwendungsframework, und Spring Boot ist eine Erweiterung des Spring-Frameworks mit einigen zusätzlichen Vorteilen.

    Weitere Informationen

  • Spring Boot verfügt über die Funktionalität des allgemeinen Spring-Frameworks, aber Spring Boot erfordert nicht, dass Sie Spring lernen. Ein Entwickler kann eine App in kürzerer Zeit zum Laufen bringen, da Spring Boot-Attribute automatisch konfiguriert werden und der meinungsbezogene Ansatz einen Großteil des Standardcodes und der Konfiguration entfernt, die mit der Entwicklung und Bereitstellung von Spring-Apps verbunden sind.

    Weitere Informationen

  • Verkürzte Entwicklungszeit, erhöhte Produktivität und Benutzerfreundlichkeit sind nur einige der Vorteile der Entwicklung von Spring Boot-Anwendungen.

    Weitere Informationen

  • Auf der Spring-Website finden Sie zahlreiche Tutorials, Schnellstarts und Dokumentationen sowie Spring Boot-Starter und Dokumentationen von Microsoft Azure. Wenn Sie sofort mit der Bereitstellung von Spring Boot-Anwendungen beginnen möchten, sollten Sie sich das Webinar Beschleunigen Sie Spring Boot-Anwendungen in der Cloud im großen Stil ansehen.

    Weitere Informationen

Sind Sie bereit? Dann richten Sie Ihr kostenloses Azure-Konto ein.

Können wir Ihnen helfen?