如何解决为什么以下不会自动创建参考对象
| 使用Spring<bean id=\"id2\" class=\"class2\">
</bean>
<bean id=\"id1\" class=\"class1\">
<constructor-arg index=\"0\" ref=\"id2\" />
</bean>
如果使用getbean(\“ id1 \”),我发现id2不会自动创建。如何在创建id1之前强制创建id2?
解决方法
那应该工作。 Spring会从布线中找出依赖关系,并以所需顺序创建事物。
如果不正确,请检查类名是否正确,
class1
和class2
是否具有适当的构造函数,以及其他可能阻止两个bean实例化的事情。另外,检查是否没有使用构造函数自变量依赖循环指定某些内容;例如
<bean id=\"id2\" class=\"class2\">
<constructor-arg index=\"0\" ref=\"id1\" /> </bean>
<bean id=\"id1\" class=\"class1\">
<constructor-arg index=\"0\" ref=\"id2\" /> </bean>
如果此答案无济于事,请向我们提供FULL堆栈跟踪以及REAL接线文件中的相关摘录。
我对Spring 3.0文档的阅读是,对于OP的示例,不需要depends-on
属性。 ѭ5应该足以告诉Spring有一个依赖关系,并使其以正确的顺序实例化bean。
,这可以通过以下方式显式指定bean \“ id1 \”取决于\“ id2 \”来完成:
<bean id=\"id2\" class=\"class2\">
</bean>
<bean id=\"id1\" class=\"class1\" depends-on=\"id2\">
<constructor-arg index=\"0\" ref=\"id2\" />
</bean>
,如果bean id2仅用作id1的构造函数,则您也可以使用内部bean。
<bean id=\"id1\" class=\"class1\">
<constructor-arg>
<bean class=\"class2\">
</bean>
</constructor-arg>
</bean>
(错别字编辑)