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

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

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

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

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

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

  我們自定義的這個(gè)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