如何使用Spring XML配置来设置包含特定类型的所有bean的列表的bean属性?

Dav*_*ick 10 java spring

我有以下XML配置:

<bean id="bean1" class="Simple"/>
<bean id="bean2" class="Simple"/>

<bean id="tasks" class="java.util.ArrayList">
    <constructor-arg>
        <list>
            <ref bean="bean1" />
            <ref bean="bean2" />                
        </list>
    </constructor-arg>
</bean>

<bean id="list" class="Comp">
    <property name="tasks" ref="tasks"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

"tasks"包含Simple类型的所有bean.这个问题是我可能忘记添加一个我已配置到列表中的Simple bean.

我可以用编程方式做到这一点

Map map = context.getBeansOfType(Simple.class);
Run Code Online (Sandbox Code Playgroud)

并使用检索到的bean设置列表bean.

有没有办法只使用XML配置?

Rob*_*anu 8

您的上下文文件应该是这样的:

<bean id="bean1" class="Simple"/>
<bean id="bean2" class="Simple"/>

<bean id="list" class="Comp" autowire="byType"/>
Run Code Online (Sandbox Code Playgroud)

请注意autowire="byType"添加和自动装配文档.