Dagger的Scope注解代表的是作用域,通过实现自定义@Scope注解,标记当前生成对象的使用范围,标识一个类型的注射器只实例化一次,在同一个作用域内,只会生成一个实例,

然后在此作用域内共用一个实例。这样看起来很像单例模式,我们可以查看@Singleton其实就是@Scope的一个默认实现而已。当然,你得是同一个Component对象来生成

Dagger为我们提供了Scope的一种实现Singleton。单例???no!!!no!!!no!!!不是这么简单的。先看一下它的代码:

@Scope
@Documented
@Retention(RUNTIME)public @interface Singleton {}

  在Dagger中我们可以自定义注解,譬如我们可以照着上面的模版自定义一个PreScope。

@Scope
@Retention(RetentionPolicy.RUNTIME)public @interface PreScope {
}

  我们自定义的这个PreScope注解也有和Singleton同样的作用(单例)。下面看一下它的使用!!!

大学生就业培训,高中生培训,在职人员转行培训,企业团训

@Modulepublic class AppModule7 {    private App7 app;    public AppModule7(App7 app) {        this.app
        
		

网友评论