Добавление ServiceListener с Spring DM
Мне интересно, если это возможно сделать эквивалент
public void start(BundleContext context)
{
String filter = "filter for my specific service";
context.addServiceListener(new MyServiceListener(), filter);
}
с весны дм. Я нашел справочный материал для добавления слушателей для управления жизненным циклом. Но это относится к жизненному циклу регистрируемой услуги. Мне нужно знать о жизненном цикле любой службы, которая зарегистрирована / незарегистрирована для определенного интерфейса службы.
Пакет, который должен знать это, на самом деле не создает сервис, а будет его использовать. Поскольку во время выполнения будет несколько экземпляров этого сервиса, я не смогу просто создать ссылку на сервис в моей конфигурации Spring.
1 ответ
Spring DM включает поддержку ссылок на набор сервисов. К сожалению, как новый пользователь, я не могу публиковать ссылки, но эта функция описана в разделе 7.2.2 документации Spring DM 1.2. Spring DM автоматически обновляет содержимое этой коллекции во время выполнения, когда службы добавляются и удаляются из реестра служб.
Когда вы объявляете ссылку на службу, будь то отдельная ссылка или набор служб, вы также можете объявить bean-компонент-слушатель, который будет уведомлен о том, что службы приходят и уходят. Это задокументировано в разделе 7.2.3.
Я бы порекомендовал использовать список или набор служб и использовать компонент-слушатель, чтобы вы были уведомлены об изменениях содержимого коллекции.