Guice: возможно ли получить все привязанные экземпляры с учетом определенного родителя/интерфейса/аннотации?

Я знаю, что это может быть не внедрение зависимостей в чистом виде, но, скажем, мне нужно использовать:

@Inject
Injector injector;

С помощью этого инжектора возможно ли получить все данные привязанных экземпляров:

  1. Родительский класс, от которого унаследован каждый экземпляр?
  2. Интерфейс, который будет реализовывать каждый экземпляр?
  3. Аннотации, которые будут иметь каждый экземпляр?

Я вижу метод Injector#findBindingsByType(), но не уверен, что он может помочь в этом отношении.


person electrotype    schedule 27.09.2012    source источник
comment
Есть средства для внедрения набора мультипривязок, но это не совсем внедрение по наследству: code.google.com/p/google-guice/wiki/Multibindings   -  person John Ericksen    schedule 28.09.2012
comment
Даже если это не отвечает на мой вопрос напрямую, Multibinding — это именно то, что мне нужно! Большое спасибо, Джонкарл!   -  person electrotype    schedule 28.09.2012
comment
@electrotype: Не забудьте вернуться и принять ответ Джона.   -  person Mark Peters    schedule 28.09.2012


Ответы (1)


Вы можете внедрить список заданного типа, связанный с помощью множественных привязок. Ознакомьтесь с документами:

https://github.com/google/guice/wiki/Multibindings

person John Ericksen    schedule 28.09.2012
comment
stackoverflow.com/questions/6085200/ описывают способ автоматического обнаружения экземпляров реализованным интерфейсом как более динамичную альтернативу явным множественным привязкам. - person vorburger; 12.11.2016