每当我在inversify-express服务器中调用api时,依赖关系每次都会创建一个新对象
Cursor cursor = db.rawQuery(...);
try {
while (cursor.moveToNext()) {
...
}
} finally {
cursor.close();
}
每当我调用api时,每次都会创建每个依赖项的新对象
答案 0 :(得分:0)
我假设您希望对象图中的某些依赖项是单例。在声明绑定时,您可以使用selenium/standalone-firefox
执行此操作:
inSingletonScope
如果kernel.bind<interfaces.Controller>(TYPE.Controller)
.to(SyncController)
.whenTargetNamed(TAGS.SyncController)
.inSingletonScope();
kernel.bind<DB_SyncDataDAO>(TYPES.DB_SyncDataDAO)
.to(DB_SyncDataDAO_Impl)
.inSingletonScope();
kernel.bind<SyncService>(TYPES.SyncService)
.to(SyncService_Impl)
.inSingletonScope();
是一个实例(nota class),那么你应该使用
DB_SyncDataDAO_Impl
而不是:
kernel.bind<T>("T").toConstantValue(instanceOfT)
使用kernel.bind<T>("T").to(classWhichIsAnImplementationOfT)
时,不需要toConstantValue
,因为默认情况下常量值的行为就像单例一样。
希望有所帮助:)