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:
- Prefiks;
- Nazwa kolekcji w której umieszczane będą docelowe obiekty (w tym przykładzie obiekty klasy Person);
- Numer indeksu pod którym obiekt będzie znajdował się w kolekcji;
- 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:

W kolejnej części opisany zostanie sposób wykorzystania mechanizmu filtrowania.
Szkolenia live dla developerów • praktyczna wiedza, realne case’y, zero lania wody 
