11 Konfiguration in Spring Boot: Properties, YAML und Configuration Beans

SpringBoot bietet flexible Möglichkeiten zur Konfiguration von Anwendungen, darunter die Verwendung von Properties- oder YAML-Dateien sowie programmatische Konfiguration mittels Configuration Beans. Diese Methoden können unabhängig voneinander oder in Kombination verwendet werden, um die Anforderungen verschiedener Anwendungsfälle zu erfüllen.

11.1 Konfiguration mit Properties oder YAML

Konfigurationsdateien (application.properties oder application.yml) sind ideal für die externe Konfiguration von Anwendungsparametern. Sie erlauben es, Werte ohne Neukompilierung der Anwendung zu ändern.

11.1.1 Beispiel in application.properties

app.message=Hallo Welt!
server.port=8081

11.1.2 Beispiel in application.yml

app:
  message: Hallo Welt!
server:
  port: 8081

Diese Konfigurationswerte können in der Anwendung verwendet werden, um beispielsweise einen Port und eine Begrüßungsnachricht zu definieren.

11.2 Konfiguration mit Configuration Beans

Configuration Beans bieten eine programmatische Methode zur Konfiguration. Sie sind besonders nützlich, wenn komplexe Konfigurationslogik oder bedingte Konfiguration erforderlich ist.

11.2.1 Beispiel für eine Configuration Bean

@Configuration
public class AppConfig {

    @Bean
    public MessageService messageService() {
        return new MessageService("Hallo Welt!");
    }
}

Hier wird ein MessageService-Bean mit einem vorgegebenen Nachrichtenwert konfiguriert.

11.3 Kombination von Configuration Beans und Properties/YAML

In realen Anwendungen ist es häufig nötig, externe Konfigurationen aus Properties- oder YAML-Dateien in Configuration Beans zu injizieren.

11.3.1 Beispiel für die Kombination

11.3.1.1 application.yml

app:
  message: Hallo Welt von YAML!

11.3.1.2 AppConfig.java

@Configuration
@ConfigurationProperties(prefix = "app")
public class AppConfig {

    private String message;

    public void setMessage(String message) {
        this.message = message;
    }

    @Bean
    public MessageService messageService() {
        return new MessageService(message);
    }
}

In diesem Beispiel wird app.message aus der application.yml-Datei in das AppConfig-Bean injiziert und zur Konfiguration des MessageService-Beans verwendet.

11.4 Zusammenfassung

Spring Boot bietet vielfältige Konfigurationsmöglichkeiten, die einzeln oder in Kombination verwendet werden können, um die Anforderungen moderner Anwendungen zu erfüllen. Die Verwendung von Properties- oder YAML-Dateien ermöglicht eine einfache und flexible externe Konfiguration, während Configuration Beans die Macht der programmatischen Konfiguration freisetzen. Durch die Kombination beider Ansätze können Entwickler die Vorteile von beiden nutzen, um ihre Anwendungen effizient und effektiv zu konfigurieren.