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'

spring-xml で ${myIntValue} を int にキャストすることは可能ですか?

4

2 に答える 2

1

うーん...私にとって、春は私の側からの努力なしに文字列から整数への変換を行うので、あなたの設定には何か面白いことがあるに違いありません。これが私にとってうまくいく例です:

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 に答える