zoukankan      html  css  js  c++  java
  • Dagger学习笔记

    @Inject 提供依赖的构造函数,或者需要依赖的成员变量

    @Module 提供依赖,实例化的地方( 使用module实例化,方便测试的时候替换成其他对象,而这也是和构造方法注入的区别,如果用构造方法注入,则做不到测试的时候随意替换)

    @Component 一个连接者,把module和需要依赖的地方连接起来

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

     singleton scope can not be used in unscope component

    before

    after

    void inject(Activity aty); void inject(Fragment fragment);

    per activity(每个Activity一个Activity)

    https://github.com/chiuki/friendspell chiuki写的,包含了dagger2与测试

  • 相关阅读:
    laravel路由和MVC
    laravel目录介绍
    laravel下载安装
    Mac 程序员的十种武器
    Python中列表的copy方法
    Ubuntu 安装vim失败解决
    Linux userAdd 增加用户如果没有配置文件情况解决
    Ubuntu 软件管理
    awk工具详解
    httpsClient
  • 原文地址:https://www.cnblogs.com/baron89/p/5762450.html
Copyright © 2011-2022 走看看