Cơ BảnNestJS iconNestJS

Provider và Dependency Injection trong NestJS hoạt động như thế nào?

Provider là bất kỳ class nào được annotate với @Injectable() — services, repositories, factories, helpers. NestJS quản lý vòng đời và inject chúng tự động thông qua constructor injection.

Cách hoạt động: khai báo provider trong providers array của module, NestJS IoC container tạo instance và inject vào các class phụ thuộc qua constructor. Reflector đọc TypeScript metadata để biết type cần inject.

Scope của providers: DEFAULT (Singleton) — một instance cho toàn app, REQUEST — instance mới cho mỗi request, TRANSIENT — instance mới mỗi lần inject. Custom providers cho phép linh hoạt hơn: useValue để inject giá trị cụ thể, useFactory để tạo provider với logic phức tạp, useClass để swap implementation.

Xem toàn bộ NestJS cùng filter theo level & chủ đề con.

Mở danh sách NestJS