与Spring的多个依赖关系

时间:2011-07-26 11:02:27

标签: java spring dependency-injection

任何人都可以建议我如何在spring框架中为同一个bean注入多个依赖项? 我将尝试非常简短地解释一下这个场景,以防有人建议我提供更好的解决方案。

我有一个数据存储库,它必须通过某些过滤器来过滤掉不需要的数据。过滤更改的标准并未固定到一个过滤器。所以,我创建了一个过滤器处理程序,它根据过滤器过滤数据。我想使用IoC并注入过滤器依赖项。它直接到这里,只有可以有多个过滤器。如何注入多个依赖项。如果我可以创建过滤器列表,如何在xml文件中声明列表?

提前致谢,

3 个答案:

答案 0 :(得分:3)

你可以这样做(filter1和filter2是别处定义的bean的id):

<property name="propertyName">
  <list>
    <ref bean="filter1"/>
    <ref bean="filter2"/>
  </list>
</property>

答案 1 :(得分:2)

如果您的过滤器都实现了相同的界面,那么最优雅的方式(在我看来)是这样的:

@Autowired
private List<YourFilterInterface> filters;

这将连接包含实现YourFilterInterface的所有已注册bean的列表。它在Spring 2.5及更高版本中可用。

答案 2 :(得分:1)

Spring docs告诉您如何创建列表。

从上面的链接中取得的例子......

<!-- creates a java.util.List instance with the supplied values -->
<util:list id="emails">
    <value>pechorin@hero.org</value>
    <value>raskolnikov@slums.org</value>
    <value>stavrogin@gov.org</value>
    <value>porfiry@gov.org</value>
</util:list>