dev-tools

Dependency Injection

Dependency injection (DI) is a design pattern where an object receives the things it depends on from the outside — passed into its constructor or method — instead of creating them itself. Rather than a service reaching out to instantiate its own database connection or HTTP client, those dependencies are "injected" by the caller or a DI container. The payoff is decoupling and testability: because the dependency is supplied externally, you can swap the real database for a mock in tests, or switch implementations without touching the class that uses it. DI is central to frameworks like Spring, Angular, NestJS, and Laravel's service container. For AI/SaaS builders, DI is what makes a codebase testable and configurable — you can point the same code at a real LLM provider in production and a fake one in tests, or swap providers via config. Practical note: DI adds indirection, so don't over-engineer a tiny script with a full container; reach for it when you have real seams you need to swap or test across.

Related terms

More Dev Tools terms