【问题标题】:Spring: inject properties file into mapSpring:将属性文件注入地图
【发布时间】:2014-01-22 09:30:09
【问题描述】:

我在下面有一个属性文件:

transition.s1=s2,s5
transition.s2=s4,s1
...................

问题:如何将这些属性注入Map<String, String>?可以举个例子吗?

【问题讨论】:

标签: java spring


【解决方案1】:

如果是 XML 配置

public class StateGraph {
    public StateGraph(Map<String, String> a){ 
    ...
    }
    boolean getStateTransition(){
    ...
    }
}

由于属性实现了映射,您可以将其作为构造函数提供

<bean class="com.xxx.xxx.StateGraph">
    <constructor-arg>
        <util:properties location="classpath:props.properties"/> 
    </constructor-arg>
</bean>

请注意 Spring 将完成所有工作the required generic type conversions

如果您使用的是 Java 5 或 Java 6,您会发现它是 可能有强类型集合(使用泛型类型)。 也就是说,可以声明一个 Collection 类型,这样它就可以 仅包含 String 元素(例如)。如果您使用 Spring 依赖注入一个强类型的集合到一个bean中,你可以 利用 Spring 的类型转换支持,这样 您的强类型 Collection 实例的元素将被转换 在被添加到集合之前到适当的类型。

如果您使用的是编程配置,那么您必须自己在 @Configuration 类中进行 - 请参阅 Converting java.util.Properties To HashMap<string,string>

【讨论】:

    猜你喜欢
    • 2017-08-23
    • 2019-02-04
    • 2014-02-17
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 2012-08-06
    • 2015-07-03
    • 2011-09-09
    相关资源
    最近更新 更多