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