Dagger的Scope注解代表的是作用域,通過實現(xiàn)自定義@Scope注解,標(biāo)記當(dāng)前生成對象的使用范圍,標(biāo)識一個類型的注射器只實例化一次,在同一個作用域內(nèi),只會生成一個實例,

然后在此作用域內(nèi)共用一個實例。這樣看起來很像單例模式,我們可以查看@Singleton其實就是@Scope的一個默認(rèn)實現(xiàn)而已。當(dāng)然,你得是同一個Component對象來生成

Dagger為我們提供了Scope的一種實現(xiàn)Singleton。單例???no!!!no!!!no!!!不是這么簡單的。先看一下它的代碼:

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

  在Dagger中我們可以自定義注解,譬如我們可以照著上面的模版自定義一個PreScope。

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

  我們自定義的這個PreScope注解也有和Singleton同樣的作用(單例)。下面看一下它的使用?。?!

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

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

網(wǎng)友評論