Назад к вопросам
amoCRM
Junior — Middle
66
Каким образом можно настроить автоматическую инъекцию зависимостей при использовании Dagger?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Для настройки автоматической инъекции зависимостей в Dagger необходимо использовать аннотации @Inject и компоненты @Component.
-
В конструкторе класса, который должен получать зависимости, ставится аннотация
@Inject. -
Создается интерфейс с аннотацией
@Component, который связывает поставщиков зависимостей (модули) и классы, куда они будут внедряться. -
В классе, где нужна инъекция, вызывается метод компонента
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 генерирует код, который автоматически создает и внедряет зависимости, если правильно использовать аннотации и компоненты.