Sobes.tech
Назад к вопросам
Junior — Middle
66

Каким образом можно настроить автоматическую инъекцию зависимостей при использовании Dagger?

Компании, где спрашивали
amoCRMamoCRM

Ответ от нейросети

sobes.tech AI

Для настройки автоматической инъекции зависимостей в Dagger необходимо использовать аннотации @Inject и компоненты @Component.

  1. В конструкторе класса, который должен получать зависимости, ставится аннотация @Inject.

  2. Создается интерфейс с аннотацией @Component, который связывает поставщиков зависимостей (модули) и классы, куда они будут внедряться.

  3. В классе, где нужна инъекция, вызывается метод компонента inject(this), который автоматически внедрит все зависимости, помеченные @Inject.

Пример:

class Engine {
    @Inject
    Engine() {}
}

class Car {
    @Inject
    Engine engine;

    @Inject
    Car() {}
}

@Component
interface CarComponent {
    void inject(MainActivity activity);
}

// В MainActivity
CarComponent component = DaggerCarComponent.create();
component.inject(this); // зависимости будут внедрены автоматически

Таким образом, Dagger генерирует код, который автоматически создает и внедряет зависимости, если правильно использовать аннотации и компоненты.