В OSGi-проекте я могу получить параметры из свойства-заполнителя <cm:property-placeholder persistent-id="id" update-strategy="reload"/>.
Но эти параметры будут загружены из .cfg. Мне нужно загрузить параметры из DataBase, могу ли я установить поставщик params для владельца-заполнителя?Blueprint property-placeholder provider
0
A
ответ
0
Свойство-заполнитель Заполнитель свойств cm: может содержать только свойства из config admin. Таким образом, нет простого решения, просто настроив некоторый xml.
Есть три способа для достижения этой цели:
- Вы можете написать ConfigAdmin бэкенд, который извлекает конфигу из базы данных.
- Вы можете написать собственное пространство имен чертежей, которое реализует элемент, подобный элементу-заполнителю свойства, и извлекает конфигурации из базы данных.
- Простым решением было бы установить пакет в вашей среде выполнения, который считывает базу данных и использует службу ConfigurationAdmin для создания конфигураций в соответствии с содержимым базы данных.
Так что я бы выбрал третье решение. Хорошим побочным эффектом этого является то, что после того, как вы написали конфигурации, нет сбоя, если база данных опускается.