0

我在我的模型中使用第三方库类 XYZ 作为参数。XYZ 没有默认构造函数。所以 spring 无法为其创建 bean 并给出错误消息

org.springframework.web.util.NestedServletException: Request processing failed; 

nested exception is org.springframework.data.mapping.model.MappingInstantiationException: 

Could not instantiate bean class [org.abc.def.XYZ]: No default constructor found;nested exception is java.lang.NoSuchMethodException: org.abc.def.XYZ./<init/>()
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:681)

我能做些什么来解决这个问题?我无法将默认构造函数添加到 XYZ。

我在调度程序 servlet 中添加了以下内容,但它仍然不起作用。

<bean name="token" class="org.abs.def.Xyx">
    <constructor-arg name="arg1" value="val1"/>
    <constructor-arg name="arg2" value="val2"/>
    <constructor-arg name="arg3" value="val3"/>
</bean>

谢谢。

4

2 回答 2

3

您可以在 XML 文件中将其定义为传递所有必要参数以实例化它的 spring bean。

样本:

<bean id="xyz" class="com.a.b.Xyz" >
    <constructor-arg index="0" ref="anotherBean"/>
    <constructor-arg index="1" value="12"/> 
</bean>
于 2012-05-18T08:38:14.693 回答
0

您需要<constructor-arg>在应用程序上下文配置文件中提供元素,如文档中所述

于 2012-05-18T08:39:43.537 回答