Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

Spring Value: почему некорректно видит переменные?

#java #spring


Я вынес все данные в properties, например, с такими полями:

email.content.charset=utf-8


Я создал отдельный класс с пропертями, ResourcesProperties, в котором у меня есть
это поле и геттер:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class ResourcesProperties {

    @Value("${email.content.charset}")
    private String emailCharset;

    public String getEmailCharset() {
        return emailCharset;
    }
}


Проперти-файл сканируется спрингом:

@PropertySource({"classpath:/properties/mail.properties"})


Я автовайрю класс проперти в нужный мне класс:

@Autowired
private ResourcesProperties properties;


и вывожу на экран:

System.out.println(properties.getEmailCharset());


Результат:

${email.content.charset}


Делаю то же самое через Environment:

System.out.println(environment.getProperty("email.content.charset"));


Результат:

utf-8


Подскажите, что я делаю не так?
    


Ответы

Ответ 1



Добавьте в ваш класс ResourcesProperties след код. @Bean public static PropertySourcesPlaceholderConfigurer propertyConf() { return new PropertySourcesPlaceholderConfigurer(); } Если не инициализировать PropertySourcesPlaceholderConfigurer то считыватся через аннотацию property не будет

Комментариев нет:

Отправить комментарий