Можно ли подключиться к событиям жизни, подобным OnActivating или OnActivated Autofac

#java #dagger-2 #dagger

#java #кинжал-2 #кинжал

Вопрос:

У меня есть компонент Dagger, который создается с использованием нескольких модулей. Некоторые модули требуются приложению, но некоторые другие модули являются необязательными. В первом модуле привязана служба:

 @Singleton
@Binds
abstract IService serviceBind(Service service);
 

Во втором, необязательном модуле, привязано множество дополнительных сервисов. Я хотел бы использовать эти дополнительные сервисы из второго модуля (дополнительный модуль) для выполнения некоторых операций с сервисом из первого модуля. Я не хочу, чтобы эти дополнительные сервисы вводились непосредственно в сервис из первого модуля, потому что я не хочу связывания классов, может быть много дополнительных сервисов, я хочу разобраться с ними с помощью отражения. Кроме того, невозможно иметь все дополнительные модули, реализующие общий интерфейс.

Было бы очень удобно, если бы в Dagger была возможность прикрепить к событию времени жизни экземпляра, как в Autofac (https://autofaccn.readthedocs.io/en/latest/lifetime/events.html ). Например, я бы использовал следующий код:

 // PSEUDOCODE!
@OnActivated
void serviceOnActivated(IService service, IServiceOptonal1 s1, IServiceOptonal2 s2){
   service.register(s1);
   service.register(s2);
}
 

Есть ли какой-нибудь способ сделать что-то подобное в Dagger?