Dagger2:从单例组件返回非单例对象

时间:2019-07-02 19:18:06

标签: java android kotlin dependency-injection dagger-2

如何不从@Singleton组件返回单例对象?

例如,我有:

ApplicationComponent.kt

@Singleton
@Component(modules = [ApplicationModule::class])
interface ApplicationComponent() {
    fun database(): Database
    fun model(): Model
}

Model.kt

class Model @Inject constructor()

我想要的是每次都返回Model的不同实例,相反返回Database,它将是一个单例,并且由ApplicationModule.kt提供

1 个答案:

答案 0 :(得分:1)

如果您将Model提供为

@Singleton
class Model @Inject constructor()

或为

@Provides
@Singleton
fun provideModel() = Model()

它将是一个单例。

如果不使用@Singleton@Reusable或任何其他范围来注释任何提供程序,则将始终创建一个新实例。