使用给定的前缀和后缀从Spring Boot中的属性文件中检索所有键值对

时间:2018-03-19 08:58:57

标签: spring-boot properties-file

我现在已经尝试了一段时间了。我想从属性文件中读取并存储为hashmap。

这是一个例子。

sample.properties
pref1.pref2.abc.suf = 1
pref1.pref2.def.suf = 2
...
...

这是Config类。

@ConfiguraionProperties
@PropertySource(value = "classpath:sample.properties")
public class Config{
    @Autowired
    private Environment env;

    public HashMap<String, Integer> getAllProps(){
        //TO-DO 
    }
}

我希望能够返回{"abc":1, "def":2};

我偶然发现了诸如使用PropertySourcesAbstractEnvironment等答案,但仍无法使用它。

提前致谢!

2 个答案:

答案 0 :(得分:0)

班级

org.springframework.boot.actuate.endpoint.EnvironmentEndpoint

读取所有已配置的属性并将它们放在Map中。 这用于从REST端点返回所有属性及其值。见production ready endpoints

您可以使用EnvironmentEndpoint类中的所有属性将构建Map的3个方法复制到您自己的方法中。然后迭代Map并按键选择所有属性。

我在一个项目中完成了这项工作,效果很好。

答案 1 :(得分:0)

可以使用spring boot @ component,@ PropertySource和@ConfigurationProperties

创建类似

的组件
SizeConst = 4