Феликс / OSGi: Как использовать компоненты SCR, которые не являются сервисами OSGi? - PullRequest
0 голосов
/ 18 января 2009

Apache Felix SCR позволяет объявлять (посредством аннотаций или XML) компоненты, которые затем будут созданы, подключены к их зависимостям и зарегистрированы как службы OSGi.

Также можно пропустить часть регистрации службы и просто заставить SCR создать компонент (указав @scr.component, но не указав @scr.service). Я думал, что это может быть полезно только для внедрения зависимости (в комплекте), но как использовать компоненты? Сервисы могут быть введены с использованием scr.reference , но это не работает для не-сервисов (или делает это)?

Доступ к API SCR напрямую работает, но непосредственное общение с контейнерными службами в некоторой степени противоречит цели DI.

1 Ответ

2 голосов
/ 19 января 2009

Я думаю, что вы можете вводить только сервисы OSGI. Если вы хотите использовать внедрение зависимостей, возможно, вам следует проверить Google Guice. К сожалению, я не знаю, работает ли он из коробки внутри контейнера OSGI.

Что касается компонентов SCR, если компонент предоставляет функциональность, которую вы хотите использовать в другом компоненте, я думаю, что он должен быть раскрыт с помощью службы.

...