Convention over Configuration in Spring Boot

18.10.2017

Komplexe Konfigurationen für eine simple Testanwendung gehören der Vergangenheit an: Mit Convention over Configuration in Spring Boot lässt sich die Komplexität von Konfigurationen stark reduzieren: Solange man sich an die Konventionen hält, die das Framework vorgibt, entfallen viele manuelle Konfigurationen. Beispielsweise werden die passenden Spring Beans erzeugt, wenn bestimmte Klassen im Pfad enthalten sind. Sind die passenden Beans hingegen bereits durch eine manuelle Konfiguration vorhanden, werden sie auch nicht erzeugt. [1]

Eine Spring Boot Anwendung kann über die vom Framework festgelegten Standardkonfigurationen somit schnell lauffähig gemacht werden, der Entwickler kann diese jedoch auch problemlos überschreiben.

Externalized Configuration

Spring Boot erlaubt es unter anderem auch, die Konfiguration der Anwendung nach außen zu verlagern und dadurch in unterschiedlichen Umgebungen denselben Applikationscode zu verwenden. So können zentrale Konfigurationen wie die Datenbankanbindung, SSL Verschlüsselung, Ports oder Logdateien zum Bespiel über die Datei application.properties festgelegt werden. Wird die Anwendung gestartet, verwendet Spring Boot die Konfigurationsdatei innerhalb der erzeugten .jar Datei. Gibt es hingegen eine externe application.properties Datei, die außerhalb der .jar Datei abgelegt ist, wird die Konfiguration standardmäßig aus dieser Datei geholt. Dadurch lassen sich zentrale Konfigurationen einfach überschreiben und der Applikationscode kann auf unterschiedlichen Umgebungen eingesetzt werden, ohne, dass die .jar Datei verändert werden muss. Außerdem gibt es die Möglichkeit, profilspezifische application.properties Dateien zu erstellen, die dann für das jeweilige Profil eingesetzt werden.

Database initialization

Das Framework kann auch genutzt werden, um eine SQL Datenbank zu initialisieren. Dazu  muss eine Datei schema.sql im Resource Folder erstellt werden, die die notwendigen Tabellendefinitionen enthält. Außerdem wird eine Datei data.sql im selben Ordner benötigt, um die Datenbank zu befüllen. Bei der Initialisierung sucht Spring Boot nach diesen Dateien und führt sie mit der Datenbankinitialisierung aus.

Auch wenn man die Datenbanktabellen nicht über Spring Boot erzeugen möchte, kann die data.sql Datei hilfreich sein, um Testdaten für die Testdatenbank bereitzustellen und sicherzustellen, dass diese immer identisch sind. Dazu wird die data.sql Datei im Resource Ordner unter Test abgelegt.

Mit Spring Data JPA lassen sich Repository Implementierungen automatisch zur Laufzeit aus einem Interface generieren. Anschließend wird der Typ der Entität festgelegt und schon beinhaltet das Repository die Basisfunktionalitäten, ohne, dass zusätzlicher Code geschrieben werden muss: Das Finden, Speichern und Löschen der jeweiligen Entität. [2]

Fazit

Convention over Configuration  ist eines der zentralen Konzepte von Spring Boot. Dadurch ist es möglich Spring Boot Anwendungen mit sehr wenig Code zu entwickeln, solange man die Standardkonfigurationen verwendet. Im besten Fall muss der Entwickler somit nur die  hinter dem Framework liegenden Konventionen lernen und sich nicht mit unzähligen Konfigurationen auseinandersetzen.


Quellen:

[1] https://spring.io/guides/gs/spring-boot/

[2] https://spring.io/guides/gs/accessing-data-jpa/

Zurück zur Übersicht

Kommentar verfassen

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

*Pflichtfelder

*