Dagger2: return 不是单例组件中的单例对象
Dagger2: return not singleton object from singleton component
我怎么能 return 不是来自 @Singleton
组件的单例对象?
例如我有:
ApplicationComponent.kt
@Singleton
@Component(modules = [ApplicationModule::class])
interface ApplicationComponent() {
fun database(): Database
fun model(): Model
}
Model.kt
class Model @Inject constructor()
我想要的是每次 return Model
的不同实例,相反 Database
将是一个单例,由 ApplicationModule.kt
如果您提供 Model
作为
@Singleton
class Model @Inject constructor()
或
@Provides
@Singleton
fun provideModel() = Model()
会是单例
如果您不使用 @Singleton
、@Reusable
或任何其他范围注释任何提供程序,您将始终创建一个新实例。
我怎么能 return 不是来自 @Singleton
组件的单例对象?
例如我有:
ApplicationComponent.kt
@Singleton
@Component(modules = [ApplicationModule::class])
interface ApplicationComponent() {
fun database(): Database
fun model(): Model
}
Model.kt
class Model @Inject constructor()
我想要的是每次 return Model
的不同实例,相反 Database
将是一个单例,由 ApplicationModule.kt
如果您提供 Model
作为
@Singleton
class Model @Inject constructor()
或
@Provides
@Singleton
fun provideModel() = Model()
会是单例
如果您不使用 @Singleton
、@Reusable
或任何其他范围注释任何提供程序,您将始终创建一个新实例。