Dependency Injection (DI) is a core concept in Spring that simplifies object creation and management. It allows you to decouple components by injecting dependencies rather than hardcoding them. Here's a quick guide:
📌 Core Concepts
- Inversion of Control (IoC): Spring manages object lifecycles and dependencies.
- Setter/Constructor Injection: Two primary methods to inject dependencies.
- Autowired Annotation: Simplifies dependency injection in Spring beans.
🧠 Why Use DI?
- ✅ Promotes loose coupling
- ✅ Easier testing with mock objects
- ✅ Centralized configuration management
📂 Example Code
@Service
public class VideoService {
private final VideoRepository repository;
// Constructor injection
public VideoService(VideoRepository repository) {
this.repository = repository;
}
public List<Video> getTutorials() {
return repository.findAllByType("tutorial");
}
}