每次调用api时,依赖注入都会创建新对象

时间:2016-10-12 07:07:35

标签: node.js typescript inversifyjs

每当我在inversify-express服务器中调用api时,依赖关系每次都会创建一个新对象

Cursor cursor = db.rawQuery(...);
try {
        while (cursor.moveToNext()) {
        ...
    }
} finally {
    cursor.close();
}

每当我调用api时,每次都会创建每个依赖项的新对象

1 个答案:

答案 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,因为默认情况下常量值的行为就像单例一样。

希望有所帮助:)