Граф зависимостей строится во время компиляции посредством обработки аннотаций. Dagger сгенерирует классы, подобные этому DaggerMainComponent
, из вашего примера на основе аннотаций, которые вы добавили в свои классы, например @Module
, @Component
, @Inject
и т. Д.
Я бы предложил вамПрочтите статью об обработке аннотаций, например: one :
Так что же такое обработка аннотаций? Аннотация - это своего рода механизм тегов, который можно пометить некоторыми мета на Классах, Методах или Параметрах, и Обработка аннотаций проанализирует эти Аннотации во время компиляции и сгенерирует для вас Классы в соответствии с вашими Аннотациями.
build()
- этоВызванный во время выполнения, вы можете открыть код DaggerMainComponent
и проверить реализацию метода build
, он будет создавать некоторые экземпляры зависимых модулей, проверять другие требования и, наконец, создавать новый экземпляр DaggerMainComponent
.