JavaWeb application

Spring Boot część 10 – Wczytywanie obiektów z pliku konfiguracyjnego

Spring Boot udostępnia mechanizm automatycznego wczytywania pliku konfiguracyjnego i stworzenie z nich obiektów.
Dla przykładu zostanie wykorzystana klasa Person do której zostaną załadowane dane. Oto prosty model klasy. Koniecznie musi on zawierać getery i setery do pól:

public class Person {

    private String name;
    private String surname;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Person() {
    }

    @Override
    public String toString() {
        return "Person{" + "name=" + name + ", surname=" + surname + ", age=" + age + '}';
    }
}

W przykładzie zostanie utworzone kilka obiektów klasy Person.
W pierwszej kolejności musi zostać utworzona prawidłowa konfiguracja:

app.persons[0].name=Jon
app.persons[0].surname=Blacksmith
app.persons[0].age=33
app.persons[1].name=Lena
app.persons[1].surname=Rain
app.persons[1].age=22

Skład klucza jest następujący:

  1. Prefiks;
  2. Nazwa kolekcji w której umieszczane będą docelowe obiekty (w tym przykładzie obiekty klasy Person);
  3. Numer indeksu pod którym obiekt będzie znajdował się w kolekcji;
  4. Nazwa pola w klasie do której ma zostać wstrzyknięta wartość;

Posiadając model (klasa Person) i prawidło zbudowany plik konfiguracyjny można wstrzyknąć elementy do kolekcji.
Adnotacja @ConfigurationProperties zapewnia automatyczne wczytanie konfiguracji do klasy.
Należy pamiętać, że kolekcja musi mieć nazwę taką samą jaka została uwzględniona w pliku konfiguracyjnym. Obowiązkowe są również getery i setery do pól.

@RestController
@ConfigurationProperties("app")
public class PersonReader {

    private List<Person> persons = new ArrayList<>();

    public List<Person> getPersons() {
        return persons;
    }

    public void setPersons(List<Person> persons) {
        this.persons = persons;
    }

    @RequestMapping("/showPersons")
    public List<Person> showPersons() {
        return persons;
    }
}

Rezultat:

wczytywanie obiektów z pliku konfiguracyjnego

 

W kolejnej części opisany zostanie sposób wykorzystania mechanizmu filtrowania.

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