Map<String, Collection<Object>> 是否可以在 Spring 中声明
Is Map<String, Collection<Object>> possible to declare in Spring
我有一个 class 具有以下构造函数:
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>
的类型)。
您可以将 <list>
元素声明为条目值的一部分,如下所示:
<bean id="myBean" class="path.to.MyClass">
<constructor-arg>
<map>
<entry key="String">
<list>
<ref bean="toInject" />
</list>
</entry>
</map>
</constructor-arg>
</bean>
依赖注入发生在运行时,因此此时不再存在类型参数。
此配置应该有效:
<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>
我有一个 class 具有以下构造函数:
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>
的类型)。
您可以将 <list>
元素声明为条目值的一部分,如下所示:
<bean id="myBean" class="path.to.MyClass">
<constructor-arg>
<map>
<entry key="String">
<list>
<ref bean="toInject" />
</list>
</entry>
</map>
</constructor-arg>
</bean>
依赖注入发生在运行时,因此此时不再存在类型参数。
此配置应该有效:
<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>