小编典典

Spring Boot读取属性而没有前缀到映射

spring-boot

我需要读取映射中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;
    }
}

阅读 365

收藏
2020-05-30

共1个答案

小编典典

这可以使用 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;
    }
}
2020-05-30