Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Dagger2Learn

Dagger2的示例代码.

两种方式注入

  1. 使用@Inject注解目标类依赖 和 使用 @Inject注解提供依赖类构造函数.注意只能注解一个构造函数 然后使用 @Component连接,并使用inject(xxx)方法达成连接关系. 可参考 littleSingleSample

  2. 使用 Module提供依赖.此时 @Inject构造函数也能提供依赖时,优先查找Module层面 可参考 littleSample

  3. 提供的依赖还消费别的依赖 可参考doubleDependenciesSample下的示例.

dagger2进行的一次依赖注入的步骤:

  • 步骤1:查找Module中是否存在创建该类的方法。
  • 步骤2:若存在创建类方法,查看该方法是否存在参数
    • 步骤2.1:若存在参数,则按从步骤1开始依次初始化每个参数
    • 步骤2.2:若不存在参数,则直接初始化该类实例,一次依赖注入到此-结束
  • 步骤3:若不存在创建类方法,则查找Inject注解的构造函数, 看构造函数是否存在参数
    • 步骤3.1:若存在参数,则从步骤1开始依次初始化每个参数
    • 步骤3.2:若不存在参数,则直接初始化该类实例,一次依赖注入到此结束