Java-Framework: Spring Boot 2.4 erweitert die Konfiguration

Das Framework zum Erstellen eigenständiger Spring-Anwendungen kann Konfigurationsbäume unter anderem für das Zusammenspiel mit Kubernetes verarbeiten.

In Pocket speichern vorlesen Druckansicht

(Bild: LilKar/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Die Ergänzung für das Java-Framework Spring zum Erstellen eigenständig lauffähiger Anwendungen Spring Boot ist in Version 2.4.0 erschienen. Das Release bringt eine erweiterte Verarbeitung der Konfigurationsdateien mit, die den Import von Configuration Trees ermöglicht, um das Zusammenspiel mit Cloud-Plattformen zu verbessern. Außerdem lassen sich über einen neuen Endpunkt detaillierte Informationen zum Startverhalten der Anwendung abrufen und Docker-Images direkt in einer Docker-Registry veröffentlichen.

Auf Java-Seite arbeitet Spring Boot 2.4 mit dem JDK 15 zusammen, lässt sich aber weiterhin mit Java 8 und Java 11 verwenden. Im Spring-Ökosystem ist das vor Kurzem veröffentlichte Spring Framework 5.3 die Grundlage, und bei den anderen Projekten bietet Spring Boot ebenfalls eine Anbindung an die aktuellsten Releases wie Spring Security und Spring Integration jeweils in Version 5.4 und Spring Data 2020.0.

Eine neue spring.config.import-Property lässt sich dazu verwenden, Konfigurationsbäume (Configuration Trees) zu importieren, die vor allem im Cloud-Umfeld zu finden sind, unter anderem in der Konfiguration für Kubernetes-Cluster. Dabei liegen die Schlüssel-Werte-Paare jeweils in separaten Dateien, bei denen der Name den Schlüssel (Key) repräsentiert und der Inhalt den Wert (Value).

Als indirekte Folge davon verarbeitet das aktuelle Release die Konfigurationsdateien application.poperties und application.yml anders als die Vorgänger. Die Spring-Entwickler haben die Updatelogik beim Laden externer Konfigurationen angepasst, um neue Funktionen wie das Importieren von Konfigurationen über spring.config.import zu ermöglichen. Für einfache Konfigurationsdateien ist wohl häufig keine Änderung erforderlich, und für komplexere Szenarien existiert ein Migrationsleitfaden auf GitHub.

Der neue Endpunkt startup liefert Einblick in das Startverhalten der Applikation. Er soll beim Auffinden von Spring Beans helfen, die länger als erwartet zum Starten benötigt haben. Das Startup-Tracking ist seit der jüngsten Version 5.3 Bestandteil des Spring Frameworks. Der Aufruf des Endpunkts erfolgt beispielsweise über

$ curl 'http://localhost:8080/actuator/startup' -i -X POST

Eine weitere Neuerung betrifft das Interface Origin, das den Ursprung eines Items repräsentiert und beispielsweise für einen aus einer Datei geladenen Inhalt den Dateinamen und die passenden Zeilen- beziehungsweise Spaltennummern enthält. Spring Boot 2.4 führt die Methode getParent() ein, mit der sich eine Kette der Quellen ermitteln lässt. So ließe sich für einen über spring.config.import geladenen Inhalt, der als Quelle die importierte Datei hat, als Elternobjekt die ursprüngliche application.properties-Datei ermitteln, in der das Import-Statement zu finden ist.

Spring Boot 2.3 hatte bereits einige Ergänzungen für Docker an Bord, darunter die Option, Cloud Native Buildpacks zu verwenden. Das aktuelle Release erweitert die Anbindung an Registries: Die Plug-ins für Maven und Gradle bieten als jeweiliges Build-Goal beziehungsweise -Task die Möglichkeit, ein mit spring-boot:build-image unter Maven oder bootBuildImage unter Gradle erstelltes Image direkt in einer Docker Registry zu veröffentlichen.

Weitere Neuerungen in Spring Boot 2.4 unter anderem zum Authentifizieren von Docker-Images finden sich im Spring-Blog.

(rme)