JavaWeb application

Spring Boot część 9 – Automatyczne wczytanie konfiguracji

Spring Boot posiada mechanizm automatycznego wczytywania konfiguracji i wstrzykiwania wartości dzięki refleksji.

Przykładowy poniższy zbiór danych może zostać wstrzyknięty poprzez odwołanie się po prefiksie w tym przypadku “db.”

db.host=localhost
db.port=3306
db.username=admin
db.userpass=admin123

Klasa oznaczona adnotacją @ConfigurationProperties automatycznie pobiera konfiguracje. Flaga prefix definiuje klucze które mają zostać pobrane z pliku konfiguracyjnego.
Poniższa klasa posiada zdefiniowaną adnotacje @ConfigurationProperties(prefix = “db”).
To znaczy, że kontekst Spring przeszuka plik konfiguracyjny i sprawdzi wszystkie wpisy, których klucz rozpoczyna się od “db.”.
Następnie na podstawie pozostałej części klucza będzie wyszukiwał pola o takiej samej nazwie.
Warunkiem koniecznym jest zdefiniowanie geterów i seterów do pól, które chcemy zaczytać z konfiguracji.

@RestController
@ConfigurationProperties(prefix = "db")
public class DataBaseProperties {

    private String host;
    private int port;
    private String username;
    private String userpass;

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUserpass() {
        return userpass;
    }

    public void setUserpass(String userpass) {
        this.userpass = userpass;
    }

    @RequestMapping("/getConnectionParam")
    public String showConnectionParam() {
        return "host " + host
                + " port " + port
                + " username " + username
                + " userpass " + userpass;
    }
}

Rezultat programu jest widoczny poniżej:

automatyczne wczytywanie konfiguracji

Zmiana pliku konfiguracyjnego

Standardowo wartości są wczytane z domyślnego pliku konfiguracyjnego jakim jest application.properties. Nic nie stoi na przeszkodzie, aby utowrzyć nowy plik konfiguracyjny. Jednak należy wskazać jego miejsce danej klasie, która będzie wczytywała dane konfiguracyjne. Aby tego dokonać należy dodać nad daną klasą adnotacje @PropertySource z wartością wskazującą na lokalizacje pliku np:

@PropertySource("classpath:application.properties")

 

W kolejnej części opisany zostanie sposób wczytywania obiektów z pliku konfiguracyjnego.

Cały kurs opisujący mechanikę i działanie Spring Boot od podstaw znajdziesz tutaj: Kurs Spring Boot
Tags:
Show Buttons
Hide Buttons