Ответ 1
@Module: Модули - это классы, методы которых обеспечивают зависимости, поэтому мы определить класс и аннотировать его с помощью @Module, таким образом, Кинжал будет знать где найти зависимости, чтобы удовлетворить их, когда создание экземпляров класса. Одной из важных особенностей модулей является то, что они были разработаны для разделения и составления вместе (для Например, мы увидим, что в наших приложениях мы можем модули).
@Компонент. Компоненты в основном представляют собой инжекторы, скажем, мост между @Inject и @Module, на который возложена главная задача: оба вместе. Они просто дают вам примеры всех типов, которые вы например, мы должны аннотировать интерфейс с помощью @Componentи перечислите все @Modules, которые будут составлять этот компонент, а если есть из них отсутствует, мы получаем ошибки во время компиляции. Все компоненты знают о масштабах зависимостей, которые он предоставляет посредством своих модули.
@Provide. Внутри модулей мы определяем методы, содержащие эту аннотацию который говорит Кингеру, как мы хотим построить и упомянутых зависимостей.
Советую вам прочитать следующее:
- Дегустационный кинжал 2 на Android от Fernando Cejas
- Инъекция зависимостей с кинжалом 2 (Devoxx 2014) Джейком Уортоном
- Инъекция зависимостей с кинжалом 2
- Инъекция с помощью кинжала 2 - API by froger_mcs
- Включение зависимостей с кинжалом 2 - Пользовательские области применения froger_mcs
Я думаю, это поможет понять.