Tutorial: Spring Boot mit Spring Initializr

In diesem Blogartikel soll es darum gehen, einmal die Grundlagen der Softwareentwicklung mit Spring abzubilden. Zunächst wird beschrieben, was Spring ist und wo eigentlich der Unterschied zu Spring Boot liegt. Danach wird kurz beschrieben, wie man mit Hilfe des Spring Initializr eine erste REST-Schnittstelle mit Spring Boot umsetzen kann. Am Ende des Artikels werden noch verschiedene Links und Hinweise zur weiteren Recherche gegeben.

Voraussetzung für dieses Tutorial ist eine vorhandene IDE und eine Version von Gradle und Java.

Was ist Spring und was Spring Boot?

Spring bezeichnet ein Open-Source-Framework zum Erstellen von REST-Schnittstellen, WebSockets und Web-MVC-Anwendungen. Das Grundprinzip lautet Einfachheit ohne Flexibilität zu verlieren. Dabei können Teile des Frameworks auch einzeln in Spring-fremden Anwendungen genutzt werden. Weiterhin werden verschiedene Stufen des Testens (Unit-, Integrationstests und andere) unterstützt und Mock-Funktionen angeboten. Zudem ist die Entwicklung in anderen Sprachen der Java-Familie möglich. Beispiele dafür sind Kotlin und Groovy.

Spring Boot vereinfacht dabei das Erstellen von Stand-alone-Anwendungen mit Spring. Dafür werden für Spring und andere angeschlossene Frameworks viele Standardeinstellungen vorgenommen, welche somit nicht mehr explizit angegeben werden müssen. Zudem ist ein eingebetteter Tomcat-Server vorhanden, wodurch die Anwendung sofort lauffähig ist und kein größeres Deployment mehr erfahren muss.

Einrichten der ersten Spring Boot Anwendung

Der einfachste Weg die Entwicklung mit Spring Boot zu beginnen ist, das grundlegende Projekt erzeugen zu lassen. Dazu kann man den Spring Initializr (https://start.spring.io/) nutzen. Hier wird ein fertiges Gradle- bzw. Maven-Skript mit allen angegebenen Abhängigkeiten erstellt, eine entsprechende Ordner-Struktur aufgebaut und es werden erste Dateien angelegt.

Screenshot des Spring Initializr mit Standardeinstellungen

Der Spring Initializr mit Standardeinstellungen

Screenshot des Eingabeelementes des Spring Initializr zur Auswahl von Abhängigkeiten
Für unser erstes Projekt nutzen wir folgende Einstellungen:

  • Gradle-Projekt mit Java und Spring Version 2.0.5
  • Group: de.example
  • Artifact: firstApplication
  • Dependencies: Web (dazu: „Web“ eingeben und auf den ersten Eintrag in der Liste klicken, siehe Bild)

Wenn alles Fertig ist, dann sollten alle Felder wie folgt ausgefüllt sein:

Screenshot des Spring Initializr mit Einstellungen für ein Beispielprojekt

Der Spring Initializr mit den Einstellungen für das Beispielprojekt

Danach noch auf „Generate Project“ klicken, das erstellte Zip-Archiv herunterladen und entpacken. Zum ersten Test kann über die Konsole (im Pfad des Projekts) oder über die IDE (bei geöffnetem Projekt) der Befehl gradle bootRun ausgeführt werden. Es erfolgt eine längere Ausgabe, welche in der letzten Zeile „Started FirstApplication“ enthalten sollte. Durch die Ausführung des Befehls wurde das Projekt gebaut, zusammen mit dem von Spring Boot gelieferten Tomcat in eine jar-Datei gepackt und ausgeführt. Das heißt, mit diesen wenigen Schritten ist es möglich, einen funktionsfähigen Webserver zu erstellen. Dieser läuft auf dem Port 8080 und kann angesprochen werden, hat aber noch keine Funktion.

Um ihm nun etwas mehr Funktion zu geben, wird ein REST-Endpunkt erstellt. Dazu wird eine neue Klasse mit dem Namen „Controller“ im selben Package wie die „FirstApplication“-Klasse angelegt. Die Klasse wird entsprechend dem Codebeispiel annotiert und erhält eine Methode. Die genaue Bedeutung der Annotationen kann der unten verlinkten Dokumentation oder der JavaDoc entnommen werden, eine kurze Zusammenfassung befindet sich als Kommentar im Code.

Um unseren so erweiterten Server zu starten wird wieder der Befehl gradle bootRun  ausgeführt. Der neu erstellte Endpunkt kann über die URI http://localhost:8080/test/helloWorld (z.B. im Browser) angesprochen werden. Es sollte die Ausgabe „Hello World!“ erfolgen.

Weitere Links und Hinweise

Hinweise

  • Beachte immer den Unterschied zwischen Spring und Spring Boot. Viel funktioniert ähnlich, aber ähnlich heißt nicht gleich.
  • Bevor man ein externes Framework einbindet: Erstmal die Spring-Frameworks durchsuchen, meist findet sich etwas Passendes.
  • Für viele Spring-Frameworks gibt es Getting-Started-Guides.
  • Es gibt für alles was Spring betrifft ein Tutorial. (Viele dieser Tutorials enthalten Zusatzinformationen, wenn man diese ausblendet sind sie weniger komplex)

Links

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.