12 Integration von Umgebungsvariablen in Spring Boot Konfigurationsdateien

Spring Boot bietet einen nahtlosen Ansatz zur Nutzung von Umgebungsvariablen in Konfigurationsdateien, was die Konfiguration von Anwendungen je nach Umgebung vereinfacht. Durch die Verwendung von Platzhaltern können Entwickler Umgebungsvariablen einbinden und Default-Werte definieren, um eine hohe Flexibilität und Robustheit der Anwendungskonfiguration zu gewährleisten.

12.1 Einbindung von Umgebungsvariablen

Umgebungsvariablen können direkt in application.properties oder application.yml Konfigurationsdateien eingebunden werden, indem man die Syntax ${UMGEBUNGSVARIABLE} verwendet. Spring Boot löst diese Platzhalter automatisch auf, indem es die Werte der entsprechenden Umgebungsvariablen verwendet.

12.1.1 Beispiel für application.properties

app.message=${MESSAGE:Hallo Welt!}
server.port=${PORT:8080}

12.1.2 Beispiel für application.yml

app:
  message: ${MESSAGE:Hallo Welt!}
server:
  port: ${PORT:8080}

In diesen Beispielen wird der Wert der Umgebungsvariablen MESSAGE zur Konfiguration der Anwendungsnachricht und PORT für den Serverport verwendet. Falls die Umgebungsvariablen nicht gesetzt sind, werden die Default-Werte Hallo Welt! und 8080 verwendet.

12.2 Reaktion auf fehlende Werte

Spring Boot-Anwendungen können auf das Fehlen von Konfigurationswerten reagieren, indem sie bedingte Logik in der Anwendung verwenden oder die Spring Boot-eigene Unterstützung für bedingte Konfiguration nutzen.

12.2.1 Beispiel für eine bedingte Bean-Erstellung

@Configuration
public class AppConfig {

    @Value("${app.missingVariable:}")
    private String missingVariable;

    @Bean
    @ConditionalOnExpression("'${app.missingVariable:}'.length() > 0")
    public MyBean myBean() {
        return new MyBean(missingVariable);
    }
}

Hier wird die Bean MyBean nur erstellt, wenn app.missingVariable gesetzt und nicht leer ist. Diese Technik ermöglicht eine flexible Konfiguration und Initialisierung von Anwendungskomponenten basierend auf der Verfügbarkeit von Konfigurationswerten.