Как создать пружинный компонент с данными сбора данных, отделенными от родительского компонента? - PullRequest
9 голосов
/ 20 февраля 2011

Spring имеет возможность инициализировать значения основных типов коллекций Java .

У меня сложный тип коллекции Map<String, Set<String>> map, и его начальное значение определено в весеннем конфиге:

<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 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>

Могу ли я достичь этого без создания дополнительных классов?

1 Ответ

11 голосов
/ 20 февраля 2011

Конечно, используя пространство имен <util:map>.См. Документацию Spring C.2.2.5 .

Другим способом создания сложной конфигурации является использование подхода @ Configuration или, альтернативно, интерфейса FactoryBean .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...