Spring <constructor-arg>元素必须指定ref或value </constructor-arg>

时间:2013-06-23 11:24:00

标签: java spring constructor-injection

我遇到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,如例外)

1 个答案:

答案 0 :(得分:11)

在构造函数参数中,您可以使用基本类型long和值0,或者包装类型java.lang.Long和空值。另外,为了控制事物,我会将第二个参数的值显式设置为0。

相关问题