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