我现在已经尝试了一段时间了。我想从属性文件中读取并存储为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};
我偶然发现了诸如使用PropertySources
,AbstractEnvironment
等答案,但仍无法使用它。
提前致谢!
答案 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