我遇到Spring和构造函数注入问题。我想创建具有名称(String
)和特殊ID(long
)的动态对象。
但是当加载spring.xml文件时会发生异常。
线程“main”中的异常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>
那有什么不对?构造函数arg的索引为1(而不是0,如例外)
答案 0 :(得分:11)
在构造函数参数中,您可以使用基本类型long
和值0
,或者包装类型java.lang.Long
和空值。另外,为了控制事物,我会将第二个参数的值显式设置为0。