我在下面有一个属性文件:
transition.s1=s2,s5
transition.s2=s4,s1
...................
问题:如何将这些属性注入(inject) Map<String, String>
?你能举个例子吗?
最佳答案
如果是 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
If you are using Java 5 or Java 6, you will be aware that it is possible to have strongly typed collections (using generic types). That is, it is possible to declare a Collection type such that it can only contain String elements (for example). If you are using Spring to dependency inject a strongly-typed Collection into a bean, you can take advantage of Spring's type-conversion support such that the elements of your strongly-typed Collection instances will be converted to the appropriate type prior to being added to the Collection.
如果您正在使用编程配置,那么您必须自己在 @Configuration
类中进行配置 - 参见 Converting java.util.Properties To HashMap<string,string> .
关于java - Spring:将属性文件注入(inject) map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21278951/