【发布时间】:2009-08-12 06:33:21
【问题描述】:
我创建了一个包含其他 bean 列表的 spring bean,如下所示:
<bean name="InventoryManager" class="InvManager">
<property name="slots">
<bean class="HeadSlot" />
<bean class="ShoulderSlot" />
<!-- ... -->
</property>
</bean>
不过,问题在于,在其他地方,我在另一个类中使用了 @Autowired 注释来获取所有 bean 的列表,这些 bean 实现了其中一些内部 bean 实现的某个接口,如下所示:
@Autowired
public void registerInventoryHandlers( List<InvSlot> slots ) {
//... do some setup stuff with beans that implement the InvSlot interface.
}
这里的问题是XML 中定义的“内部bean”显然不是@Autowired 列表的一部分。但是,给所有这些插槽 bean 命名,然后从 XML 中引用它们似乎没有必要且丑陋。
有没有办法在另一个 bean 中定义一个 bean,但不是“内部”bean?或者有没有更好的方法来处理这种设计?
【问题讨论】:
标签: spring