У меня есть компоненты, члены которых заполняются из файла YAML.У меня есть внутренний компонент к этому компоненту, у которого также есть некоторые члены, заполненные из YAML.
Но когда я запускаю приложение, члены внутреннего компонента не заполняются, хотя экземпляр создается.Элементы основных компонентов загружены нормально.
Необходимо знать, почему элементы компонентов Департамента не загружаются из YAML.
обновление
Я вижу, что этот внутренний класс загружен с членами, но это делается позже во время загрузки приложения, но компонент Company
используется для загрузки некоторых других компонентов до этого.Поэтому мне нужно, чтобы внутренний класс / компонент был инициализирован сразу после инициализации компонента Company
.
Вот как определяется мой компонент
@Component
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(Include.NON_NULL)
@ConfigurationProperties(prefix = "company")
public class Company {
@JsonProperty("connectTimeout")
private Integer connectTimeout;
@JsonProperty("socketTimeout")
private Integer socketTimeout;
@JsonProperty("clientTimeout")
private Integer clientTimeout;
@JsonProperty("dept1")
@Autowired
private Department library;
@JsonProperty("dept2")
@Autowired
private Department admin;
@JsonProperty("dept3")
@Autowired
private Department transport;
@JsonProperty("dept4")
@Autowired
private Department finance;
//Getters and Setters
@Component
@SuppressWarnings({"PublicInnerClass", "WeakerAccess"})
public static class Department {
@JsonProperty("connectTimeout")
private Integer connectTimeout;
@JsonProperty("socketTimeout")
private Integer socketTimeout;
@JsonProperty("clientTimeout")
private Integer clientTimeout;
//Getters and Setters
}
}
Ниже приведен мой YAML-файл
company:
connectTimeout: 1000
socketTimeout: 20000
clientTimeout: 150
dept1:
connectTimeout: 100
socketTimeout: 100
clientTimeout: 100
dept2:
connectTimeout: 100
socketTimeout: 100
clientTimeout: 100
dept3:
connectTimeout: 100
socketTimeout: 100
clientTimeout: 100
dept4:
connectTimeout: 100
socketTimeout: 100
clientTimeout: 100