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

标签 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>

“任务”包含所有 Simple 类型的 bean。这样做的问题是我可能忘记将我配置的 Simple bean 添加到列表中。

我可以以编程方式使用

Map map = context.getBeansOfType(Simple.class);

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

有没有办法只使用 XML 配置来做到这一点?

最佳答案

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

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

<bean id="list" class="Comp" autowire="byType"/>

注意添加的 autowire="byType"the autowiring documentation .

关于java - 如何使用 Spring XML 配置来设置包含特定类型所有 bean 列表的 bean 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/943439/

相关文章:

java - 错误 : javax. servlet 不存在

Java 数组列表 : check if an id is in the list

java - 捕获异常后如何正确关闭套接字?

java - 服务器在使用 Velocity 实现 Tiles 时进入无限循环

java - 范围内的 Spring Activity 可能吗?

java - 无法登录 Kylo

java - Tarsos dsp Android AudioTrack 播放静态或过快

Java Swing GUI 沙漏

java - 如何解决 org.postgresql.jdbc.PgConnection.createClob() 尚未实现

java - 无法运行 Spring Roo shell - "Unable to resolve .. missing requirement .. package=javax.xml..."