是否可以从基于 Java 的 Spring 4 配置文件中注入(inject)与特定 reg exp 模式匹配的属性列表。
例如,给定一个属性文件,其中包含:
prefix.prop1=value1
prefix.prop2=value2
prefix.prop3=value3
other.property=someothervalue
理想情况下,我想将 prefix.* 属性注入(inject)到 bean 中 - 例如作为映射。
@Configuration
public class AppConfiguration{
public valueMap(@Value(?prefix.*?) Map<String, String> propertyMap) {
//where propertyMap would contain key/values :
//prop1, value1 ; prop2, value2 ; prop3, value3
}
}
我一直在研究 Spring EL 表达式,但在自定义 PropertyPlaceholderConfigurer 方面也没有成功。 理想情况下,如果 Spring 可以为我做的话,我不想再次读取该文件并再次处理它。
最佳答案
这里有一个解决方法:
扩展PropertyPlaceholderConfigurer
并添加一个为您提供mergeProperties()
结果的方法。
然后,您可以将此新 bean 注入(inject)到您的 AppConfiguration
中,迭代属性并过滤具有所需前缀的属性。
关于java - 基于 Java 的 Spring 配置中属性的模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25018575/