src/core/injector/instance-loader.ts
//实例加载器
export class InstanceLoader {
//依赖注射器
private readonly injector = new Injector();
private readonly logger = new Logger(InstanceLoader.name, true);
constructor(private readonly container: NestContainer) {}
//为容器的依赖创建实例
public async createInstancesOfDependencies() {
//获取Module的Map
const modules = this.container.getModules();
//创建原型
this.createPrototypes(modules);
//创建实例
await this.createInstances(modules);
}
//为模块创建原型
private createPrototypes(modules: Map<string, Module>) {
//遍历模块
modules.forEach((module) => {
//创建组件的原型
this.createPrototypesOfComp
nestjs依赖注入之InstanceLoader类
本文深入探讨NestJS中的InstanceLoader类,它利用Injector来加载和管理组件、控制器及可注入类的原型和实例,揭示依赖注入的实现细节。
摘要由CSDN通过智能技术生成