Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Microservices mit Spring Boot

Die erste Spring-Boot-Applikation anlegen

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
In diesem Video legen Sie eine erste Applikation mit Spring Boot an. Sie installieren zu diesem Zweck zunächst die Spring Tool Suite und lassen dann die eigentliche Applikation generieren. Diese führen Sie aus und sehen sich an, wie sich die Applikation per Maven erzeugen und verpacken lässt.

Transkript

Applikationen, die in der Cloud laufen sollen, laufen meistens innerhalb von Docker Containern. Solche Docker Container sind dann am besten, wenn sie so genannte Self-Containing-Jars ausführen. Self-Containing-Jars, das ist eine etwas sperriger Begriff, der ausdrückt, dass die Applikation alles, inklusive Webserver, schon mitbringt, was sie benötigt, um laufen zu können. Das Framework, mit dem man eine solche Applikation schreibt, ist Spring Boot. Und genau das werden wir uns in diesem Video einmal genauer anschauen. Spring Boot selber stammt von der Spring Foundation und ist ein Framework, um Services schnell und einfach schreiben zu können und diese Services dann auch sehr sehr einfach so zu verpacken, dass sie entsprechend leicht bereitgestellt werden können. Das Verpacken, beziehungsweise, das Verwalten der Abhängigkeiten geschieht mit Hilfe von Maven. Maven ist ein Standard-Framework, was nicht von der Spring Foundation stammt, sondern was unter der Apache-Lizenz steht und das auch in ganz vielen anderen Projekten eingesetzt wird. Wenn Sie schon mal irgendwo Maven benutzt haben, sollten Sie hier keine Probleme haben. Spring Boot ist ein so genanntes Opinionated-Framework. "Opinionated" bedeutet, dass es letztlich einige Ansichten vertritt, wie Software aufgebaut sein soll, beziehungsweise, wie Komponenten miteinander funktionieren sollen. Kennt man diese Ansichten, kann man mit so einem Framework wunderbar arbeiten. Zu einer dieser Ansichten gehört zum Beispiel der Ansatz, dass man "Convention over Configuration" stellt, das bedeutet, dass man einige Konventionen erdacht hat, die man einhalten kann, und dann hat man ein Framework, beziehungsweise, eine Lösung, die fast magisch miteinander funktioniert. Eine weitere Opinion, also eine weitere Meinung ist, dass Applikationen als Standalone Applikationen auszuführen sind. "Standalone" heißt, wie bereits erwähnt, dass die Applikation alles, wirklich alles, mitbringt, was sie für ihre Ausführung benötigt. Man nennt das übrigens auch ein "fat-jar" schreiben, weil diese Jar-Archive, die sich daraus ergeben, denn üblicherweise deutlich größer sind als ein einfaches, normales Jar-Archiv, was tatsächlich nur den normalen ausführbaren Code enthält. Und Spring Boot möchte keine Code-Generierung einsetzen, das bedeutet, alles was wir machen, ist im Zweifelsfall über Abhängigkeiten, also Maven Dependencies oder über Annotationen im Code geregelt. Es wird nichts nachträglich hinzugefügt oder weggenommen oder verändert und es gibt keine XML-Konfiguration. Konfiguration einer Spring-Boot-Applikation geschieht entweder in Java-Konfigurationsklassen oder über Annotation. Damit wir mit Spring Boot arbeiten können, benötigen wir etwas Infrastruktur. Das ist zum Glück nicht allzu viel und es handelt sich in aller Regel um Standard-Infrastruktur. So benötigen wir zum einen ein aktuelles Java JDK, die Version 1.8, die ja für Java 8 geschrieben ist, reicht völlig aus, besser ist natürlich immer eine aktuellere Version. Ebenfalls benötigen wir Eclipse und in Eclipse die so genannte Spring Tool Suite. Das ist ein Add on, was es uns erlaubt, sehr sehr einfach sehr sehr einfach die Spring-Framework-Logiken, beziehungsweise, Komponenten einzusetzen. und zu guter Letzt, das bereits erwähnte Maven. Wir werden uns nun einmal anschauen, wie wir das Ganze dann im Eclipse grundsätzlich einrichten und werden dann im Folgenden ein erstes kleines "Hello world!-Projekt" mit Spring Boot aufsetzen. Im ersten Schritt sollten wir sicherstellen, dass die Spring Tool Suite installiert ist. Wenn Sie Eclipse geöffnet haben, können Sie dazu auf "Help" "Eclipse Marketplace" klicken und suchen nach STS, der Spring Tool Suite, und sollten Sie sie noch nicht installiert haben, installieren Sie die Tool Suite in der aktuellen Version und führen letztlich alle Schritte aus, die notwendig sind, um die eigentliche Installation vorzunehmen. Das dauert ein paar Minuten, auch im Download, danach sind sie allerdings sehr sehr schnell einsatzfähig. Nachdem die Installation des Spring Tool Suite erfolgreich abgeschlossen worden ist, können Sie über "File" "New" ein neues Projekt anlegen. Wählen Sie zu diesem Zweck den Eintrag "Spring Starter Project" aus. Sollte der hier nicht existieren, können Sie ihn auch über "Other" und dort im Bereich "Spring" finden, in jedem Fall, wie gesagt, wählen Sie bitte das Spring Starter Project aus. Das Spring Starter Project ist letztlich ein Wizard, der es uns erlaubt Projekte sehr sehr einfach anzulegen. Diese Projekte, die wir anlegen, sind Maven-basiert, deswegen müssen wir hier einige Informationen aus dem Maven-Umfeld hinterlegen. Zunächst einmal geben wir aber unserem Projekt einen Namen, nämlich "hello-boot". Wir legen eine Projektgruppe fest und den eigentlichen Artifact-Namen, die Version lassen wir unangetastet und dann können wir noch eine Beschreibung angeben und zu guter Letzt, den Namensraum, also den Package-Namen, für dieses Projekt festlegen. Ein Klick auf "Next" führt uns dorthin, wo es eigentlich interessant wird, nämlich das Auswählen der Funktionalitäten, die unsere Applikation schon out of the box mitbringen soll. Zunächst einmal können Sie hier oben die Spring Boot Version festlegen. Hier sollten wir es immer bei der letzten stabilen Version bewenden lassen, in diesem Fall ist das die 1.4.2, und wenn Sie etwas nach unten scrollen, dann finden Sie hier ein Bereich namens "Web". Und hier drin finden Sie die Grundlage dafür, dass unsere Spring-Boot-Applikation tatsächlich auch im Cloud-Umfeld funktioniert, nämlich den Eintrag "Web", den wir entsprechend auswählen. Ein Klick auf "Next" führt uns zu einer Information, ich könnte jetzt auf die angegebene URL wechseln und dort dann halt schon ein fertiges Projekt-Konstrukt herunterladen. Das muss ich aber nicht machen, ein Klick auf "Finish" macht das nämlich für mich und es werden gleichzeitig alle notwendigen Abhängigkeiten aufgelöst. Ist dieser Vorgang abgeschlossen, können wir uns das fertiggestellte und heruntergeladene Projekt einmal im Project Explorer anschauen. Wenn wir es öffnen, dann stellen fest, dass wir über drei Quellcode-Knoten verfügen: zum einem den Knoten "src/main/java", da drin befindet sich eine Datei, die wir uns gleich etwas näher anschauen werden, dann den Bereich "src/main/resources", in dem wir statische Inhalte für die Applikation, also beispielsweise Bilder oder HTML-Vorlagen hinterlegen können, und den Bereich "src/test/java", der dann Unit Tests beinhalten kann. Schauen wir uns aber zunächst einmal die generierte HelloBootApplication-Klasse an, weil diese Klasse ist letztlich dafür verantwortlich, dass Spring Boot seine eigentliche Magie, die wir gleich sehen werden, ausüben kann. Es ist eine ganz normale Klasse in einer ganz normalen Java-Datei. Und diese Klasse verfügt über eine Methode, die als "public static" gekennzeichnet ist und über die Namen "main" verfügt, also eine ganz normale Einstiegsmethode einer jeden Java-Applikation. Innerhalb dieser Methode finden wir auch nur eine einzige Anweisung, nämlich SpringApplication.run und der wird als Parameter der Name der aktuellen Klasse übergeben. Wenn das geschieht, wird Spring Boot automatisch einen Webserver bereitstellen und unsere Applikation, die wir jetzt gerade geschrieben haben, die zwar noch keine Inhalte hat, aber die eben als solches schon als Applikation vollwertig ist, dadrin diployen. Warum es das macht? Ganz einfach. Auf Ebene der Klasse selber befindet sich die SpringBootApplication-Annotation und diese Annotation signalisiert Spring Boot, dass es eben ein Webserver bereitstellen soll und die Applikation dadrin bereitstellen möchte. Um das Ganze einmal auszuführen, machen wir einen Rechtsklick auf den Namen des Projektes und wählen aus dem Kontextmenü im Bereich "Run As" den Eintrag "Spring Boot App" aus. Es wird jetzt ein paar wenige Sekunden dauern und dann wird diese Applikation letztlich gebaut und bereitgestellt. Und wenn wir uns das hier anschauen, dann werden wir feststellen, dass in diesem Konsolen-Output drin steht, dass ein Tomcat Server initialisiert und auf Port 8080 gestartet worden ist und dass unsere selbstgeschriebene Applikation in diesem Application Server bereitgestellt worden ist. Wenn wir nun ein Browser öffnen, können wir uns anschauen, was wir bisher fabriziert haben. Wechseln Sie zu diesem Zweck auf die Adresse http://localhost:8080 und Sie werden eine Anzeige erhalten, wie ich sie hier auch erhalten habe, nämlich eine Fehlerseite. Das ist relativ gut erklärbar, denn wir haben schlichtweg noch keine Inhalte in unserer Applikation hinterlegt. Aber was wir gemacht haben ist, wir haben eben eine komplette und vollständige Applikation bereitgestellt, und zwar mit ganz wenigen Klicks. Wir mussten kein Tomcat herunterladen, wir mussten keine sonstigen Konfigurationen vornehmen, wir mussten eigentlich gar nichts machen außer den Spring Boot Wizard ausführen und uns aussuchen, welche Funktionalitäten wir benötigen. Diese Applikationen können wir nun auch noch so bauen, dass sie später wirklich komplett alleine lauffähig ist. Zu diesem Zweck müssten Sie zunächst einmal die Eingabeaufforderung öffnen und vorher aber sichergestellt haben, dass Sie Maven bereits installiert haben. Sollten Sie das noch nicht gemacht haben, dann laden Sie bitte Maven herunter und folgen Sie den Installationsanweisungen. Wenn Maven installiert ist, beschränkt sich das Bauen der Applikation darauf, dass Sie in das Verzeichnis der Applikation wechseln und hier mit Hilfe von Maven die Anweisungen "clean" und "install" ausführen. "Clean" wird das aktuelle Verzeichnis löschen, also den Inhalt, der da gebaut worden ist, und "install" wird die Applikation dann neu bauen. Das dauert ein paar Sekunden, das wird jetzt hier bei mir relativ schnell gehen, aber normalerweise müssen beim ersten Aufruf von Maven erstmal alle benötigten Komponenten heruntergeladen werden. Nachdem das Erstellen der Applikation erfolgreich abgeschlossen ist, können wir uns einmal anschauen, was hier tatsächlich generiert wurde. Öffnen Sie zu diesem Zweck den Windows Explorer und wechseln Sie in das Verzeichnis in dem sich Ihre Applikation befindet. Hier werden Sie feststellen, dass es ein Unterverzeichnis namens "target" gibt. Und wenn Sie sich dieses Unterverzeichnis dann etwas näher anschauen, erkennen Sie hier drin eine, in unserem Fall, fast 14 Megabyte große Datei, die letztlich von Maven generiert worden ist. Diese Datei ist deswegen so groß, weil sich innerhalb dieser Datei ein kompletter ausführbarer Tomcat-Application-Server befindet. Wir könnten jetzt diese Datei direkt über die Kommandozeile starten oder, und das ist das, was man in der Praxis tun wurde, sie in einen Docker Container packen und dann diesen Docker Container im Internet bereitstellen, sodass unsere Applikation dann entsprechend nutzbar wäre. Wie Sie gesehen haben, ist es somit sehr sehr einfach mit Hilfe von Spring Boot eine vollständige Webapplikation bereitzustellen. Und in diesem Video haben wir ja auch genau das gemacht: wir haben zunächst die Spring Tool Suite installiert, haben uns danach die Applikation über ein Wizard angelegt, ein paar Blicke auf die Applikation als solches geworfen, sie danach gestartet und zu guter Letzt über Maven dann auch noch komplett bauen lassen. Und genau das ist die Vorgehensweise, die Sie dann in Abwandlungen immer wieder an den Tag legen werden, wenn Sie mit Spring-Boot-Applikationen und Microservices arbeiten.

Microservices mit Spring Boot

Sehen Sie, wie moderne Applikationen für Cloud-Umgebungen entstehen.

2 Std. 14 min (12 Videos)
Mein Fehler bei "RESTful Services testen"
Jochen H.

Hallo! Bis zum GET-Test mit dem REST Easy im Firefox schaut alles noch o.k. aus. Leider kommt beim "custom"-PUT (MIME: application/json) dann aber die Fehlermeldung: {"timestamp":1490793534495,"status":415,"error":"Unsupported Media Type","exception":"org.springframework.web.HttpMediaTypeNotSupportedException","message":"Content type 'text/plain;charset=UTF-8' not supported","path":"/guestbook/"} Schade eigentlich...

 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!