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>
我可以在不创建额外课程的情况下实现这一目标吗?
答案 0 :(得分:11)
当然,使用<util:map>
命名空间。请参阅Spring documentation C.2.2.5。
创建复杂配置的另一种方法是使用@Configuration方法,或者使用FactoryBean接口。