我在下面有一个属性文件:
transition.s1=s2,s5
transition.s2=s4,s1
...................
问题:如何将这些属性注入Map<String, String>
?你能提供一个例子吗?
答案 0 :(得分:13)
如果是XML配置
public class StateGraph {
public StateGraph(Map<String, String> a){
...
}
boolean getStateTransition(){
...
}
}
当属性实现map时,您可以将其作为构造函数提供
<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来 依赖项将一个强类型的Collection注入bean中,你可以 利用Spring的类型转换支持这样的 强类型Collection实例的元素将被转换 在添加到Collection之前添加到适当的类型。
如果您使用的是程序化配置,那么您必须自己在@Configuration
课程中进行操作 - 请参阅Converting java.util.Properties To HashMap<string,string>。