是否可以将String转换为Spring xml-config中的int

时间:2012-12-06 14:08:49

标签: spring

假设我有一个属性文件'config.properties',其中包含以下行:

myIntValue=4711

和一点java bean:

public MyLittleJavaBean {
    private int theInt;
    public void setTheInt(int theInt) { this.theInt = theInt }
}

在我的applicationContext.xml中,我读了属性文件:

<context:property-placeholder location="config.properties"/>

然后我想像这样把这些东西连在一起:

<bean id="theJavaBean" class="MyLittleJavaBean">
    <property name="theInt" value="${myIntValue}"/>
</bean>

然后我会得到这个errorMessage:

org.springframework.beans.TypeMismatchException: Failed to convert property
value of type 'java.lang.String' to required type 'int' for property 'theInt'

是否可以将$ {myIntValue}转换为spring-xml中的int?

2 个答案:

答案 0 :(得分:1)

嗯......你的设置肯定会有一些有趣的东西,因为对我而言,spring在没有任何努力的情况下完成了String-to-Int转换。这是一个适合我的例子:

xml配置

<util:properties id="props">
    <prop key="foobar">23</prop>
</util:properties>

<context:property-placeholder properties-ref="props" />
<bean class="Foo" p:bar="${foobar}" />

<强> Foo.java

public class Foo {
    private int bar;

    public void setBar(int bar) {
        this.bar = bar;
    }
}

<强>更新

使用spring 3.1.2

进行测试

答案 1 :(得分:0)

有时候异常不清楚,但编译器的逻辑。

在我的情况下使用 $(name.itsn) 的错误参考值给了我异常。

正确的方法是 $ {name.itsn}

看看吧! 问候 帆