Слушатель изменения свойств для Archaius

Я использую Archaius для согласования системных свойств между всеми серверами, на которых размещено мое приложение. Я вижу, что все получатели свойств могут выполнять обратный вызов при каждом изменении этого свойства (например, см. третий аргумент в getStringProperty()), но я хочу прослушивать любое изменение свойств. Есть ли какой-то интерфейс, который я могу реализовать и где-то зарегистрироваться в качестве слушателя?


person Cameron    schedule 16.09.2014    source источник


Ответы (1)


Я не нашел ответа ни в одной документации Archaius How-to, но конфигурация Apache Commons предоставляет решение в их События конфигурации (с которой Archaius полностью совместим).

Я создал прослушиватель, реализовав org.apache.commons.configuration.event.ConfigurationListener, который определяет один метод с именем configurationChanged() и принимает один параметр ConfigurationEvent. Этот метод вызывается один раз до и один раз после фактического изменения свойства с логическим значением beforeUpdate в параметре event, указывающим время для каждого вызова.

Как только я создал прослушиватель, я зарегистрировал его в своем диспетчере конфигурации Archaius:

ConfigurationManager.getConfigInstance().addConfigurationListener(new MyCustomConfigurationListener());

Теперь я вижу, что MyCustomConfigurationListener.configurationChanged() вызывается дважды (один раз до и один раз после) при каждом изменении свойства.

person Cameron    schedule 16.09.2014
comment
Это было очень полезно! Спасибо Кэмерон! - person user770119; 05.10.2018