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 或任何其他范围注释任何提供程序,您将始终创建一个新实例。