我有一个整数列表,如1,2,3,4,5,6,7,8,9,10
我想在我的POJO中将它用作整数数组。
但是,我不希望它在我的类中,但是想要将它外部化到属性文件中,然后将它作为类的属性注入我的xml中。
怎么做?
感谢阅读!
答案 0 :(得分:12)
用逗号分隔值应该这样做
如果你的班级看起来像这样
Class MyCLass
{
private Integer[] myIntArray;
public Integer[] getMyIntArray(){
return this.myIntArray;
}
public void setMyIntArray(Integer[] intArray){
this.myIntArray=intArray;
}
}
您的上下文文件应该是这样的:
<bean id="myBean" class="MyClass">
<property name="myIntArray" value="1,2,3,4,5"></property>
</bean>
如果您想要使用属性文件:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:myProps.properties"/>
</bean>
<bean id="myBean" class="MyClass">
<property name="myIntArray" value="${myvalues}"></property>
</bean>
在 myProps.properties 文件
中myvalues=1,2,3,4,5
答案 1 :(得分:5)
有一种方法可以这样:
<beans:bean id="myBean" class="MyClass">
<beans:property name="myIntArray" >
<beans:list>
<beans:value>1</beans:value>
<beans:value>2</beans:value>
<beans:value>3</beans:value>
</beans:list>
</beans:property>
</beans:bean>
但是当你需要从属性文件中读取这些值时,我找不到从属性文件中读取的方法: - (
但我有一个丑陋的解决方案。将您的课程改为:
Class MyCLass
{
private Integer[] myIntArray;
private String[] myIntArrayStr;
public Integer[] getMyIntArray(){
return this.myIntArray;
}
public void setMyIntArray(Integer[] intArray){
this.myIntArray=intArray;
}
public void setMyIntArrayStr(String[] myIntArrayStr) {
this.myIntArrayStr = myIntArrayStr;
//we are going to read the values as a string array and set out integer array inside this setter
int i=0;
Integer[] myInts = new Integer[myIntArrayStr.length];
for(String s: myIntArrayStr){
myInts[i]=Integer.parseInt(s);
i++;
}
setMyIntArray(ints);
}
}
按如下方式在xml中写入:
<beans:bean id="myBean" class="MyClass">
<beans:property name="myIntArrayStr">
<beans:value>
${myvalues} <!-- this is gonna come from properties file as previously was -->
</beans:value>
</beans:property>
</beans:bean>
希望这有帮助。
答案 2 :(得分:0)
<bean id="mybean" class="package.name">
<property name="myIntArray">
<list value-type="int">
<value>1</value>
<value>2</value>
<value>3</value>
</list>
</property>
</bean>
希望这对你和其他人也有帮助。 这是当你不想使用属性文件时。