任何人都可以建议我如何在spring框架中为同一个bean注入多个依赖项? 我将尝试非常简短地解释一下这个场景,以防有人建议我提供更好的解决方案。
我有一个数据存储库,它必须通过某些过滤器来过滤掉不需要的数据。过滤更改的标准并未固定到一个过滤器。所以,我创建了一个过滤器处理程序,它根据过滤器过滤数据。我想使用IoC并注入过滤器依赖项。它直接到这里,只有可以有多个过滤器。如何注入多个依赖项。如果我可以创建过滤器列表,如何在xml文件中声明列表?
提前致谢,
答案 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>