【发布时间】:2012-01-20 06:50:32
【问题描述】:
我有一个整数列表,例如 1、2、3、4、5、6、7、8、9、10
我想在我的 POJO 中将它用作整数数组。
但是,我不希望它在我的类中,而是想将它外部化到属性文件中,然后将它作为类的属性注入到我的 xml 中。
怎么做?
感谢阅读!
【问题讨论】:
标签: spring
我有一个整数列表,例如 1、2、3、4、5、6、7、8、9、10
我想在我的 POJO 中将它用作整数数组。
但是,我不希望它在我的类中,而是想将它外部化到属性文件中,然后将它作为类的属性注入到我的 xml 中。
怎么做?
感谢阅读!
【问题讨论】:
标签: spring
用逗号分隔值应该这样做
如果你的班级看起来像这样
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
【讨论】:
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> 这应该从 Spring 3.0 开始工作
有这样的说法:
<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>
希望这会有所帮助。
【讨论】:
在你的 spring.xml 中你可以有这样的东西。
<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>
希望这对您和其他人也有帮助。 这是你不想使用属性文件的时候。
【讨论】: