美文网首页week.io
dagger2 学习(三) - scope 使用

dagger2 学习(三) - scope 使用

作者: 搬代码白言午 | 来源:发表于2017-01-15 20:49 被阅读28次

    关于Scope

    Dagger 2 自带的 Scope 只有一个 @Singleton ,其他的可以通过自定义来实现

    本文代码

    1. 前言

    (1) Scope 的作用,就是提供在当前 Component 实例 范围内的单例。

    假设 DaggerUserComponent 能够提供 User 实例

    UserComponent 被自定义的 @UserScope 标注,那就意味着

    一旦一个 DaggerUserComponent 实例创建完成,

    那么其调用 injectTo 方法,进行注入时,所有注入的 User 对象都是同一个实例

    知道 DaggerUserComponent 被重新创建,才会提供一个不一样的User实例

    (2) @Scope 的使用方法

    第一种

    1. @Scope 注解整个 Bean 对象,@inject 注解对应 Bean 对象的构造方法
    2. @Scope 还需要在 Bean 对象注入,出现的 Component 中标注

    第二种

    1. @Scope 配合 在Module 中使用,配合 @Provides 一起标注
    2. @Scope 需要在 Module 出现的 Component 中标注

    两种方法,其实就是两种提供实例的不同实现,对比前面 一二两篇文章即可看出

    第一种是最简单注入时,加上@Scope

    第二种是配合@Module 注入式,加上@Scope


    2. 进行实践操作

    (1) 整体结构构建

    实践的内容主要是针对 @Scope 第二种使用方法

    因此这�中间@UserScope 只需要添加到 UserModuleUserComponent

    具体代码

    整个类的结构

    Dagger2 学习(三)

    一家之言,仅供参考

    本文代码

    相关文章

      网友评论

        本文标题:dagger2 学习(三) - scope 使用

        本文链接:https://www.haomeiwen.com/subject/vhkubttx.html