L'injection de dépendances consiste à fournir à un objet ses collaborateurs de l'extérieur, typiquement par le constructeur, au lieu de les créer lui-même avec new. Le code dépend alors d'interfaces et peut recevoir un faux dans les tests. Un conteneur comme Spring peut assembler les objets.
Exemple
class Service {
private final Repo repo;
Service(Repo repo) { this.repo = repo; }
}