dependencies - 在 Nestjs 中,如果服务中未提及 Injectable 但服务在每个模块中注册为提供者,那么 DI 将如何工作
问题描述
如果我在模块中将服务声明为提供者但没有在服务中使用 @Injectable 装饰器,会发生什么?
//Module
module({
controller: [catController],
provider: [catService]
})
//Service
//@Injectable()
export class catService{
}
我认为令牌将被注册但不会被使用,并且每次都会共享新实例。我对么?
解决方案
@Injectable()
是一个有趣的案例,因为它的作用是告诉 NestJS 这个类需要注入依赖项。从技术上讲,如果没有要注入的依赖项,则可以省略此装饰器,但有可能不再与框架的其余部分保持一致。否则,该类本身将充当任何其他 NestJS 提供程序,并且仍然可以注入其他控制器和提供程序。
推荐阅读
- android - 无法安全释放相机
- primefaces - 嗨,我有一个带有菜单栏的 JSF 页面。我想在页面顶部显示一条消息,以显示对话框中的操作结果
- json - 将 JSON 数组解析为 Map
使用 Kotlinx.serialization - mongodb-stitch - MongoDB Stitch 自定义新用户电子邮件确认
- uitableview - 使用 UITableView 时发生不需要的 segue
- sql - 在表格中选择“Ratio_to_report”
- html - 是否可以
- python - 在 Python 中计算符号数组的指数
- python - Pandas 的输出不一致以 np.std 作为函数参数应用函数
- python - 如何将 RGBA 字节串转换为灰度图像?