Microservices mit Spring Boot

Eigene Konfigurationseinstellungen hinterlegen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Fügen Sie zu den existierenden Spring-Boot-Konfigurationseinstellungen eine weitere Einstellung hinzu. Danach werden Sie den konfigurierten Wert über einen einfachen RESTful Service auslesen und zurückgeben.

Transkript

Spring-Boot-Applikationen bringen mit der Datei "application.properties" eine wundervolle Möglichkeit mit, um die Applikationen dynamisiebar zu gestalten. Das bedeutet, Sachen in dieser Datei zu hinterlegen und die dann in Code einfach zu verwenden. Das geschieht unter der Haube, beispielsweise für den hier dargestellten server.port. Wir haben ebenfalls die Möglichkeit uns in unseren eigenen Klassen diese Funktionalitäten zunutze zu machen. In diesem Video werden wir uns anschauen, was wir dafür tun müssen, um eine eigene Property zu hinterlegen und auch erfolgreich wieder auszulesen. Und wir werden uns dann auch anschauen, dass und wie das funktioniert. Eigene Einstellungen, die wir in der application.properties hinterlegen, könnten wir natürlich dadurch auslesen, das wir die gesamte Datei laden und dann nach diesen Einstellungen suchen. Das ist per se sehr einfach möglich, aber alles andere als elegant. Wir müssten damit rechnen, dass wir Fehler machen, wir müssten das irgendwo dokumentieren und so weiter und so fort. Aus diesem Grund kennt Spring Boot einen anderen Mechanismus, nämlich solche Eigenschaften, die wir also konfigurierbar gestalten wollen, in Form einer eigenen Klasse zu hinterlegen. Und genau das werden wir jetzt tun. wir werden eine neue Klasse anlegen in unserem Projekt, und zwar im Package "de.applicity.configuration" und die Klasse nennen wir "HelloProperties". Diese Klasse, eine ganz normale Java Klasse, repräsentiert dann die zusätzlichen Einstellungen, die wir gerne in der application.properties Datei hinterlegen wollen. Die Einstellung, die wir hinterlegen wollen, nennt sich "Welcome" und die soll letztlich eine Willkommensnachricht bereitstellen. Wir legen sie hier in dieser Klasse als eine Zeichenkette an und der Text, den diese Zeichenkette haben wird, lautet "Welcome," mit einem Komma. Wir lassen uns jetzt per Rechtsklick und über das Kontextmenü dann "Source" "Generate Getters and Setters" die entsprechenden Zugriffsmethoden generieren und sind damit eigentlich schon sehr weit durch. Nun müssen wir diese Klasse dem Spring Framework noch bekannt machen, damit es weiß, dass es die laden soll, das machen wir mit Hilfe der Component-Annotation. Und wir müssen festlegen, dass diese Klasse, diese Komponente, Konfigurationseinstellungen beherbergt. das machen wir mit Hilfe der ConfigurationPproperties-Annotation. Und hier können wir als Parameter angeben unter welchem Schlüssel das Ganze hinterlegt werden soll. Wenn wir uns das jetzt hier in der application.properties nochmal anschauen, dann haben wir ja hier den Schlüssel "server.port" und auf Ebene dieser ConfigurationProperties geben wir an, was der Teil des Schlüssels vor dem Punkt ist. Der Teil nach dem Punkt ist dann unserer Eigenschaft "welcome" oder andere zusätzliche Eigenschaften, die wir hier hinzufügen können, die werden dann entsprechend ausgelesen und wenn ich mir eine Instanz dieser Klasse dann in meinen Code injizieren lasse, auch automatisch mit den hinterlegten Werten befüllt. Nun wollen wir das Ganze einmal nutzbar machen. Eine Spring-Boot-Applikation ist ja eine Webapplikation, es liegt also durchaus nahe, jetzt hier eine Web-Komponente zu schreiben, die auf diese Funktionalitäten zurückgreift. Wir legen zu diesem Zweck im Package "de.applicity" eine neue Klasse an und die nennen wir "HelloController" und diese Klasse annotieren wir mit der Annotation "RestController". Die RestController-Annotation teilt jetzt dem Spring-Boot-Framework mit, dass diese Klasse Funktionalitäten bereitstellt, die über HTTP Restful Services, also Get, Post und so weiter und sofort nutzbar gemacht werden soll, und wir können uns jetzt hier eine Eigenschaft unsere HelloProperties-Klasse injizieren lassen. Damit das geschieht, fügen wir eine entsprechende Variable dazu und markieren diese als "Autowired". Nun können wir noch eine Methode bereitstellen, die vom Client, also vom Browser, aufgerufen werden kann und die uns dann entsprechend einen Wert zurückgibt. Diese Methode annotieren wir mit "RequestMapping", das ist ebenfalls eine Annotation aus dem Spring Framework, und hier können wir quasi den Pfad, den virtuellen Pfad innerhalb der Applikation zu dieser Methode hinterlegen. Diese Methode ist dann also über den virtuellen Pfad "/Hallo" erreichbar. Was wir jetzt hier machen, ist, wir geben hier die "Welcome" Nachricht zurück und fügen da noch ein Text mit hinten dran "Fremder". Das heißt, zurückgegeben wird dann "Hello, Fremder". Unsere so geschriebene Applikation, können wir nun einmal starten, wir machen das per Rechtsklick auf den Applikationsnamen "Run As" "Spring Boot App". Nach ein paar Sekunden ist die Applikation gestartet und wird bereitgestellt und wir können sie nun im Browser einmal aufrufen. Damit wir wissen, was wir aufrufen sollen, sollten wir uns allerdings genau die Ausgabe anschauen. In meinem Fall ist die Applikation auf dem Port 63222 gestartet worden. Und genau das ist die Adresse, die ich dann im Browser eingeben muss. Ich öffne also mein Browser und gebe jetzt hier ein: http://localhost:63222 und den virtuellen Pfad "hello". Und die Rückgabe ist, wie ich es erwarte, "Welcome, Fremde". Das ist jetzt allerdings noch nicht ganz so schön. Das wäre schon netter, wenn ich das vielleicht in "Willkommen, Fremder" umwandeln könnte. Kein Problem, wir müssen dafür keinen Code mehr ändern, sondern wir gehen lediglich noch einmal in die Applikation und ändert jetzt den Wert in der Konfigurationsdatei. Im "Eclipse" beenden wir also die Applikation und wechseln in unsere Konfigurationsdatei und hier hinterlegen wir jetzt "hello.welcome", "hello" ist das, was ich auf der HelloProperties-Datei als quasi Beginn des Schlüssels angegeben habe und "welcome" ist die Eigenschaft, die ich gerne ändern möchte. Und hier hinterlege ich jetzt den Wert "Willkommen". Ich starte nun die Applikation noch einmal neu, muss mir erneut den Port merken, diesmal ist es der Port 63247, und kann dann über diesen Port die Applikation aufrufen. Gebe also den geänderten Port an, rufe die Applikation auf und bekomme die erwartete Ausgabe "Willkommen, Fremder". Aus meiner Sicht gibt es jetzt nur noch einen einzigen Makel, wenn wir uns das hier etwas näher anschauen, bekommen wir nämlich gesagt "'hello.welcome' is an unknown property", auf gut Deutsch: "diese Eigenschaft ist nicht bekannt". Das sollten wir noch ändern. Und das können wir ändern, ohne dass wir auch nur eine einzige zusätzliche Zeile Code schreiben, indem wir nämlich die Datei "pom.xml" öffnen. Innerhalb diese Datei verwalten wir alle Abhängigkeiten unseres Projektes und hier müssen wir eine bestimmte zusätzliche Abhängigkeiten hinzufügen. Die benötigte Abhängigkeit ist der sogenannte Spring-Boot-Configuration-Processor. Das ist eine zusätzliche Komponente, die uns einfach bereitgestellt wird, wir klicken zu diesen Zweck auf die Schaltfläche "Add" im Bereich Dependencies und gebe als Group Id "org.springframework.boot" ein und als Artifact Id "spring-boot-configuration-processor". Übernehmen die Einstellungen, speichern unser Projekt, und führen einmal ein Rechtsklick aus und wählen im Kontextmenü "Maven" den Eintrag "Update Project", bestätigen, dass unser Second-Boot-Projekt upgedatet werden soll. Das dauert ein paar wenige Sekunden und wenn ich nun auf die Datei "application.properties" wechsle, ist der entsprechende Eintrag nicht mehr Gelb hinterlegt und wenn ich ihn jetzt hier noch einmal anlegen möchte, sehe ich auch, dass ich per IntelliSense, also Steuerung- und die Space-Taste, den entsprechenden Eintrag dargestellt bekomme. Die Art und Weise habe ich also ein Konfigurationssystem angelegt und hinterlegt, dass mit meinen entsprechenden Änderungen wächst, dass für mich sehr sehr einfach nutzbar ist und das ist mir eben erlaubt Sachen nicht mehr fest verdrahtet in der Applikation zu halten, sondern eben in der Properties-Datei auszulagern. Und vielleicht in späteren Versionen meine Applikation sogar vollständig konfigurativ aus Umgebungsvariablen oder anderen Komponenten herauszuziehen. Wie wir also in diesem Video gesehen haben, ist es sehr sehr einfach eine Spring-Boot-Applikation so zu gestalten, dass ich eigene Konfigurationseinstellungen zufügen kann. Ich muss eine Klasse anlegen, diese Klasse benötigt die Component- und ConfiderationProperties-Annotation und eigentlich war es das schon. Ich kann dann diese Klasse an verschiedenen Stellen in meinem Projekt nutzen, sie mir über die Autowired-Annotation mit den entsprechend hinterlegten Werten dann auch injizieren lassen und wenn ich ein bisschen IntelliSense, also ein wenig Unterstützung, beim Schreiben oder Hinterlegen der Einstellungen in meine application.properties haben möchte, dann muss ich lediglich die Abhängigkeit "spring-boot-configuration-processor" hinzufügen. So einfach geht das auf Ebene von Spring Boot.

Microservices mit Spring Boot

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

2 Std. 14 min (12 Videos)
Derzeit sind keine Feedbacks vorhanden...

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!