Мне нужно загрузить весь файл some.properties в Map
или Properties
. Файл содержит заполнители. На данный момент я нашел следующее решение:
@Configuration
@PropertySource(value = {"classpath:some.properties","${some.config}"}, ignoreResourceNotFound = true)
@ConfigurationProperties
public class Config {
private Map<String, String> props;
@Bean
public Properties someProperties() {
Properties properties = new Properties();
properties.putAll(props);
return properties;
}
//getter and setter
}
Но есть несколько неудобных моментов.
- все свойства в файле должны начинаться с props. *
@ConfigurationProperties
просматривает все файлы. Например, если application.properties будет содержать свойство, начинающееся с props. *, Это свойство будет помещено в Map. Есть ли способ использовать только файл some.properties?
Раньше я использовал PropertiesFactoryBean
следующим образом:
@Bean
public Properties someProperties() {
PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();
propertiesFactoryBean.setLocation("some.properties");
propertiesFactoryBean.afterPropertiesSet();
return propertiesFactoryBean.getObject();
}
Это работает, но не разрешает заполнители.