Я использую Apache Felix и его декларативные службы (SCR) для связи сервисных зависимостей между пакетами.
Например, если мне нужен доступ к java.util.Dictionary, я могу сказать следующее, чтобы SCR предоставил один:
/**
* @scr.reference name=properties interface=java.util.Dictionary
*/
protected void bindProperties(Dictionary d) {
}
protected void unbindProperties(Dictionary d) {
}
Теперь у меня есть более одной доступной службы словаря, и я хочу отфильтровать их, используя свойство службы «name» (я хочу только «name = myDictionary»). Я могу сделать это с помощью кода (используя ServiceTracker), но вместо этого я бы лучше указать фильтр в аннотации @scr.