我需要读取映射中application.properties文件中的所有属性。在下面的代码中,属性test具有相应的值,但映射为空。如何在application.properties文件中用值填充“映射”而不向属性添加前缀。
这是我的application.properties文件
AAPL=25 GDDY=65 test=22
我正在使用@ConfigurationProperties这样
@Configuration @ConfigurationProperties("") @PropertySource("classpath:application.properties") public class InitialConfiguration { private HashMap<String, BigInteger> map = new HashMap<>(); private String test; public HashMap<String, BigInteger> getMap() { return map; } public void setMap(HashMap<String, BigInteger> map) { this.map = map; } public String getTest() { return test; } public void setTest(String test) { this.test = test; } }
这可以使用 PropertiesLoaderUtils* 和 @PostConstruct 来实现 *
请检查以下示例:
@Configuration public class HelloConfiguration { private Map<String, String> valueMap = new HashMap<>(); @PostConstruct public void doInit() throws IOException { Properties properties = PropertiesLoaderUtils.loadAllProperties("application.properties"); properties.keySet().forEach(key -> { valueMap.put((String) key, properties.getProperty((String) key)); }); System.err.println("valueMap -> "+valueMap); } public Map<String, String> getValueMap() { return valueMap; } public void setValueMap(Map<String, String> valueMap) { this.valueMap = valueMap; } }