Apache Felix SCR позволяет объявлять (посредством аннотаций или XML) компоненты, которые затем будут созданы, подключены к их зависимостям и зарегистрированы как службы OSGi.
Также можно пропустить часть регистрации службы и просто заставить SCR создать компонент (указав @scr.component, но не указав @scr.service). Я думал, что это может быть полезно только для внедрения зависимости (в комплекте), но как использовать компоненты? Сервисы могут быть введены с использованием scr.reference , но это не работает для не-сервисов (или делает это)?
Доступ к API SCR напрямую работает, но непосредственное общение с контейнерными службами в некоторой степени противоречит цели DI.