java - Map<String, Collection<Object>> 是否可以在 Spring 中声明

标签 java spring spring-bean

我有一个具有以下构造函数的类:

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>

关于java - Map<String, Collection<Object>> 是否可以在 Spring 中声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33369654/

相关文章:

java - 创建 EntityManagerFactory Bean 时出现 IllegalStateException

java - Avro 架构与 Kafka、ClassCastException?

java - 验证 - 数据完整性

spring - 禁用 SpringSecurity 的 SavedRequest 存储逻辑

java - JSP 错误 : According to TLD, 标记形式 :input must be empty, 但不是

java - Jetty 服务器中项目部署期间发生 BeanCreationException

java - 隐藏 fragment 以隔离代码

java - 如何使用 libgdx contactlistener

java - 添加具有 @OneToMany 和 @ManyToOne 关系的实体

java - 创建具有不同属性的同一类的多个 bean 的最干净方法