Если вам нужно инициализировать объект, используя другие объекты, и после того, как оба будут готовы (что в случае, если вам нужно зарегистрировать один объект на другом, и они также зависят друг от друга), вы можете легко сделать это следующим образом:
public final class ApplicationModule extends AbstractModule {
@Override
protected void configure() {
requestStaticInjection(ApplicationModule.class);
}
@Inject
static void injectApplication(
ReslSession reslSession,
Set<Saga> sagas,
Set<Reaction> reactions
) {
sagas.forEach(reslSession::registerSaga);
reactions.forEach(reslSession::registerReaction);
}
}