Страницы

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

среда, 16 января 2019 г.

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

Я вынес все данные в 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
Подскажите, что я делаю не так?


Ответ

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

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

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