我在我的模型中使用第三方库类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>
感谢。
答案 0 :(得分: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>
答案 1 :(得分:0)
您需要在应用程序上下文配置文件中提供<constructor-arg>
个元素,如the documentation中所述。