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