Spring 有能力initialisate values of core java collection types

我有一个复杂的集合类型Map<String, Set<String>> map,它的初始值在spring config中定义:

<bean id="dao" class="ru.mypkg.dao.DaoImpl">
    <property name="dataSource" ref="dataSource"/>
    <property name="map">
        <map>
            <entry key="TABLE">
                <set>
                    <value>COMMENT</value>
                    <value>INDEX</value>
                </set>
            </entry>
            <entry key="VIEW">
                <set>
                    <value>COMMENT</value>
                </set>
            </entry>
        </map>
    </property>
</bean>

我想以以下方式重写配置:在2个bean上拆分它以提高可读性
<bean id="dao" class="ru.mypkg.dao.DaoImpl">
    <property name="dataSource" ref="dataSource"/>
    <property name="map" ref-id="myMap"/>
</bean>

<bean id="myMap" ..????..>
        <entry key="TABLE">
                <set>
                    <value>COMMENT</value>
                    <value>INDEX</value>
                </set>
            </entry>
            <entry key="VIEW">
                <set>
                    <value>COMMENT</value>
                </set>

            </entry>
</bean>

是否可以在不创建其他类的情况下实现?

最佳答案

当然,使用<util:map>命名空间。参见Spring documentation C.2.2.5

创建复杂配置的另一种方法是使用@Configuration方法,或者使用FactoryBean接口(interface)。

07-24 19:17
查看更多