我有一个包含以下构造函数的类:
public MyClass(Map<String s, Collection<Object>> co){
//impl
}
我需要通过Spring bean的声明来调用它。我试着做这样的事情:
<bean id="toInject" class="path.toSomClass" />
<bean id="myBean" class="path.to.MyClass">
<constructor-arg>
<map>
<entry key="String"
value-ref="_WHAT_SHOULD_I_WRITE_HERE_TO_DECLARE_A_COLLECTION_FROM_THE_ONLY_toInject">
</map>
</constructor-arg>
</bean>
我并不关心Collection
的类型(它可能是List<T>
以及Set<T>
,或其他任何实现Collection<T>
的内容。
答案 0 :(得分:1)
您可以将<list>
元素声明为条目值的一部分,如下所示:
<bean id="myBean" class="path.to.MyClass">
<constructor-arg>
<map>
<entry key="String">
<list>
<ref bean="toInject" />
</list>
</entry>
</map>
</constructor-arg>
</bean>
答案 1 :(得分:1)
依赖注入在运行时发生,因此当时不再存在类型参数。
此配置应该有效:
<bean id="myBean" class="path.to.MyClass">
<constructor-arg>
<map>
<entry key="String">
<list>
<value>Your value here, or</value>
<ref bean="yourBeanHere" />
</list>
</entry>
</map>
</constructor-arg>
</bean>