Я в процессе обновления проекта до Spring Boot 2.2.6. Следующие ошибки компиляции касаются привязки данных свойств yaml к списку объектов -
** Обратите внимание, что проект компилируется в предыдущей версии spring-boot (2.2.1), которую я использовал **
java .lang.IllegalStateException: не удалось загрузить ApplicationContext, вызванный: org.springframework.boot.context.properties.ConfigurationPropertiesBindException: ошибка при создании компонента с именем 'webUiApplication.States': не удалось привязать свойства к 'WebUiApplication.States': prefix = states, ignoreInvalidFields = false, ignoreUnknownFields = true; вложенное исключение - org.springframework.boot.context.properties.bind.BindException: не удалось связать свойства в 'states.defaults' с java .util.List
application.yml
states:
defaults:
-
postal-code: AL
name: Alabama
-
postal-code: AK
name: Alaska
-
postal-code: AZ
name: Arizona
Конфигурация
@Data
@Configuration
@ConfigurationProperties("states")
public static class States {
private List<State> defaults;
private List<State> docVerify;
private List<State> registration;
}
POJO
@Data
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@ToString(onlyExplicitlyIncluded = true)
public class State implements ListOption {
public static final Comparator<State> DISPLAY_COMPARATOR = new ListOption.DisplayComparator<>();
@NonNull private final String postalCode;
@NonNull private final String name;
@Override
@EqualsAndHashCode.Include
public String getValue() {
return this.postalCode;
}
@Override
@ToString.Include
public String getLabel() {
return String.format("%s - %s", postalCode, name);
}
}
Сталкивались с сообщениями, в которых участники получили похожую проблему, но не смогли найти решение. Ждем ваших отзывов.