Изменение значений заполнителя пружины в жизненном цикле бобов - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть XML-файл конфигурации, содержащий util:map, и каждый ключевой элемент ссылается на bean-компонент.

<util:map id="map">
    <entry key="category1" value-ref="category1.bean1"/>
    <entry key="category2" value-ref="category2.bean1"/>
    <entry key="category3" value-ref="category3.bean1"/>
    <entry key="category4" value-ref="category4.bean1"/>
</util:map>

По сути, для каждого ключа на карте ссылается и создается боб. Теперь каждый компонент ссылается на другой компонент, и это продолжается еще 5 раз, т. Е. Всего создается 7 компонентов
map-key -> bean1 -> bean2 -> ... -> bean7
Теперь, если я хочу добавить еще одну категорию на карту, мне придется продублировать содержимое файла конфигурации XML. Пока карта имеет 4 категории, то есть: 7 x 4 = 28 бобов, и я не вижу леса из-за деревьев.

Чего я хочу добиться: на основе значения ключа создать 7 бинов, не дублируя содержимое файла XML.
Итак, чтобы сделать это, я только сохранил карту в XML, и все XML-бины были перемещены в код. Я создал 7 классов, каждый из которых отмечен @Configuration и @PropertySource(value = "classpath:/${category1}/overrides.properties"), где category1 - это папка, а override.properties содержит одинаковый набор ключей, но с разными значениями для каждой категории. У каждого класса есть поле с пружиной Environment с автопроводкой, с помощью которого считываются свойства.

Я не нашел способа динамически загрузить заполнитель категории. Я хотел бы знать, могу ли я загрузить значение заполнителя на основе категории и прочитать это значение из ключей карты. То есть заполнитель принимает значение category1, когда category1.bean1 полностью до category1.bean7, category2, когда category2.bean1 до category2.bean7, и т. Д.

Заранее спасибо.

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