Spring 元素必须指定一个ref或值

问题描述:

我遇到了Spring和构造函数注入的问题。我想用名称(String)和特殊ID(long)动态创建对象。Spring <constructor-arg>元素必须指定一个ref或值

但是,当加载spring.xml文件时会发生异常。

在线程“主” java.lang.ExceptionInInitializerError

异常引起的:org.springframework.beans.factory.UnsatisfiedDependencyException:错误创建具有名称豆“someBean”类路径资源定义[弹簧。 xml]:通过类型为[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,作为异常说)

+1

您是否尝试过使用'type =“java.lang.Long”'? – LaurentG

+0

是的,我也试过。我也删除了索引。但没有改进 – smsnheck

+1

你应该也分享你的构造函数真的看起来像 – KNU

在可以使用构造器参数或者是原语类型long和值0,或包装类型java.lang.Long和一个空值。另外,为了控制事情,我会将第二个参数的值明确设置为0.

+0

好吧,我从value =“”切换到value =“0”。但问题仍然存在 – smsnheck

+1

您可否将'someClass'的构造函数的代码添加到您的文章中?你确定你以正确的顺序传递参数吗? – Mikhail

+3

那么,这很尴尬..构造函数就像(id,名称),我叫(名称,ID)。 – smsnheck