我需要将整个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
}
但是有些地方不方便。
@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();
}
可以,但是不能解析占位符。