3

假设我有一个包含以下行的属性文件“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>

然后我会得到这个错误消息:

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?

4

2 回答 2

1

嗯...您的设置一定有一些有趣的地方,因为对我来说,spring 无需我的任何努力就可以进行 String 到 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;
    }
}

更新

用弹簧测试3.1.2

于 2012-12-06T14:29:05.880 回答
0

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

在我的情况下,$(name.itsn)的价值参考错误,这给了我这个例外。

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

看看这个!问候帆

于 2016-03-22T20:54:24.867 回答