Свойство Spring 'map' рассматривается как обычная строка
У меня возникают трудности с введением свойства в Spring (
2.2.6.RELEASE
). Вот фрагмент кода для лучшего обзора:
@Component
public class ConfigFactory {
private static final String DEF_PROP_SPEL = "#{${validation.validityDays}.default}";
private static Integer defaultValidityDays;
@Autowired
// Method used for injecting properties into static fields
public void initFactory(@Value(DEF_PROP_SPEL) Integer defaultValidityDays) {
ConfigFactory.defaultValidityDays = defaultValidityDays;
}
}
Вот как
map
недвижимость выглядит так:
validation.validityDays={default: '5', key1: '10', key2: '20', key3: '40'}
Краткое описание ошибки : свойство отображается как строка, а не как карта, поэтому при попытке ввести
default
значение в моем поле Integer возникает исключение ParseException.
Сообщение об исключении:
Unsatisfied dependency expressed through field 'validityDays'; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "{default: '5', key1: '10', key2: '20', key3: '40'}"