Я вынес все данные в 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 не будет
Комментариев нет:
Отправить комментарий