2012-05-17 10 views
1

Я начал использовать OSGI в eclipse.Under Declarative Services, я обнаружил, что есть два метода, которые были выполнены после активации службы. I.e Активировать и привязать .. В чем разница между этими двумя?Каковы различия между 'Bind' и 'Activate

Если я хочу выполнить определенные действия, которые будут выполняться при запуске моей службы, поместите ее в метод Bind или метод Activate?

ответ

2

Методы связывания используются для ввода ссылок на службы в экземпляр компонента, то есть на сервисы, от которых зависит компонент. Метод активации (если объявлен) вызывается на последнем этапе процесса активации, когда компонент выполняется.

Итак, предположим, вы хотите закодировать свои действия в методе активации, зная, что все ваши обязательные зависимости были разрешены в этот момент.

Обратите также внимание на то, что компонент декларативного обслуживания не является само по себе службой, но может предоставить один.

+0

Thanx a bunch, я думаю, что получил его ... :) – D007

+0

В комплекте, где передаются несколько сервисов, я понимаю, что метод активации вызывается после того, как необходимые службы доступны и связаны. Но в комплекте поставщика услуг, когда называется метод активации? – D007

1

Метод activate вызывается, когда ваш компонент активирован. Так что это подходящее время для выполнения любых операций инициализации. Метод bind вызывается один раз для каждой службы, ссылающейся на ваш компонент. Поэтому, если ваш компонент имеет ссылку на LogService, ваш bind метод для LogService будет вызываться с каждым объектом LogService, связанным с вашим компонентом. Затем этот метод может хранить LogService в поле.

+0

Thanx много. :) – D007

Смежные вопросы