Dagger2 инициализация компонентов - PullRequest
0 голосов
/ 11 февраля 2020

Я внедряю зависимости с помощью кинжала;

и используя введенный classObject следующим образом,

CarComponent carComponent = DaggerCarComponent.create();
car=carComponent.getCar();

Теперь запросы выполняются,

  1. , как мы делаем весной, добавляя @ Service / @ Component к классу Нам не требуется явно вызывать что-либо для инициализации этого объекта (например, DaggerCarComponent.create()). Spring позаботится о том, чтобы инициализировать этот сервисный объект для регистрации в контексте приложения.
  2. В классе Consumer нам нужно каждый раз вызывать DaggerCarComponent.create().getCar(), чтобы получить объект Car? Есть ли другой путь ?

1 Ответ

1 голос
/ 11 февраля 2020

Dagger-2 обеспечивает поддержку Android -specifi c, которую мы обычно используем, чтобы избежать написания большого количества шаблонных кодов. Вы можете больше узнать зависимости здесь .

Ответ 1 Я не очень знаком с Spring, но при использовании dagger2 в Android нам нужно предоставить способ построения всех зависимостей в нашем главном компоненте. Если мы являемся владельцем класса, мы обычно делаем Constructor Injection, а затем предоставляем метод обеспечения для получения нашего объекта класса. Если мы не являемся владельцем класса, нам нужно сделать @Moduels, а затем @Provides их реализацию, а затем добавить этот модуль в наш Компонент, чтобы наши компоненты могли использовать их и предоставлять их при необходимости.

Ответ 2 Никогда не запускает Компонент в каждом классе. Если вы создаете Компонент в каждом классе-потребителе, то, что вы в основном делаете, это создаете целый отдельный набор зависимостей в каждом классе-потребителе, что будет стоить пустой траты памяти, поскольку если у потребительского класса есть только одна зависимость, то вместо предоставления этой зависимости мы даем все наши зависимости

Что мы обычно делаем, мы запускаем наш Компонент в нашем классе Приложения, потому что он создается только один раз, когда приложение запускается и использует Области применения для обеспечения жизни и того, где нам нужен этот определенный объект.

Для основных понятий Dagger-2, я предлагаю вам это Учебное пособие

Для Dagger -2 Android Поддержка Я предлагаю вам это Учебник

...