java - 基于 Java 的 Spring 配置中属性的模式匹配

标签 java spring spring-el spring-java-config

是否可以从基于 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/

相关文章:

java - 在纯 MVP 中,谁负责导航?

java - Spring:使用声明的多个调度程序访问正确的 WebApplicationContext

java - 如何使用 Spring Boot SPEL 以编程方式读取/解析 yaml 值?

javascript - Eval 方法 Watson 对话?

java - JFrame.repaint() 和 JFrame.revalidate() 不起作用

java - 对 JBPM REST API 进行简单调用时出现 NotFoundException

java - 未设置属性路径 - 在类路径中查找

java - Spring Boot SpEL ConditionalOnExpression 检查多个属性

java - 为什么java中有这么多获取日期时间的方法?

java - 在 Spring MVC Controller 中代理 HttpServletRequest 的最简单方法