Свойство 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'}"

0 ответов

Другие вопросы по тегам