Dagger2使用与分析(3)---@scope

我们来讨论一下@scope的使用与分析

应用场景:假如在目标类中依赖的对象要求是单例的,在一定的生命周期内使用同一个对象,使用Dagger2应该如何做呢。

根据之前基础使用方法中的介绍,每次我们调用 component 的 inject方法时,都会新创建一个对象来注入。如果我们想使用一个实例,那么就需要在创建了一个实例之后,后续每次使用都返回同一个对象而不是重新创建。如何达到这一目的呢,这里就需要用到 Scope 注解 。Scope 顾名思义是作用域,用于标注一个对象的作用域。Scope也是一个元注解,首先用Scope 来定义一个注解:


自定义scope注解

对应的单例的实体类是


person实体类,被依赖的类

自定义Module类如下:


PersonModule.java

自定义Component如下:


PersonComponent

测试使用:


测试使用

结果:


结果

查看DaggerPersonComponent文件


DaggerPersonComponent  文件

进入DoubleCheck中


get

典型的单例模式的写法。

后面会继续介绍更多Dagger2的文章

你可能感兴趣的:(Dagger2使用与分析(3)---@scope)