web-dev-qa-db-ja.com

Spring <constructor-arg>要素は、参照または値を指定する必要があります

Springとコンストラクターインジェクションに問題があります。名前(String)と特別なID(long)で動的にオブジェクトを作成したい。

しかし、spring.xmlファイルがロードされると、例外が発生します。

スレッド「メイン」の例外Java.lang.ExceptionInInitializerError

発生原因:org.springframework.beans.factory.UnsatisfiedDependencyException:クラスパスリソース[spring.xml]で定義された名前 'someBean'のBeanの作成エラー:タイプ[long]のインデックス0のコンストラクター引数によって表現された不満足な依存関係:あいまいなコンストラクター引数タイプ-コンストラクター引数として正しいBean参照を指定しましたか?

私のspring.xml:

    <bean id="someBean" class="someClass" >
        <constructor-arg index="0" type="Java.lang.String" value=""/>       
        <constructor-arg index="1" type="long" value=""/>
    </bean>
</beans>

そこで何が問題なのですか?コンストラクター引数のインデックスは1です(例外ではなく0ではありません)。

10
smsnheck

コンストラクタの引数では、プリミティブ型longと値0、またはラッパー型Java.lang.Longと空の値を使用できます。また、制御を維持するために、2番目の引数の値を明示的に0に設定します。

11
Mikhail