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.
- Rainald Menge-Sonnentag
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.
Bäumchen wechsel dich
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).
Lesen Sie auch
Spring Boot: Vom Hype zur etablierten Basistechnologie?
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.
Analyse von Startschwierigkeiten
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.
Registratur für Container
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)