循环依赖(使用内部bean)没有重复 - 是可能的吗?

时间:2014-04-09 13:07:22

标签: spring spring-bean

采取以下配置:

<beans>

    <bean name="myToyota" class="Car">
        <property name="contents">
            <list>
                <bean class="Wheel">
                    <property name="designation"><value>front-left</value></property>
                    <property name="parent"><ref bean="myToyota"/></property>
                </bean>
                <bean class="Wheel">
                    <property name="designation"><value>front-right</value></property>
                    <property name="parent"><ref bean="myToyota"/></property>
                </bean>
            </list>
        </property>
    </bean>

</beans>

是否可以在不直接引用myToyota bean的Wheel的情况下构建此图表? (也许使用SpEL)。

我担心的是,我不能将Wheels的描述复制粘贴到其他Car bean而不会引入破坏引用的可能性(这是我忘记手动调整parent属性)。

换句话说:内部bean是否可以在不知道其名称的情况下引用它包含bean?

1 个答案:

答案 0 :(得分:1)

如果您执行以下操作会怎样:

public class Car {
private List contents;

public List getContents() {
    return contents;
}

public void setContents(List contents) {
    this.contents = contents;
    for (Iterator iterator = contents.iterator(); iterator.hasNext();) {
        Wheel object = (Wheel) iterator.next();
        object.setParent(this);
    }
}

}