Aller au contenu

Injection de Dépendances (DI) - Gérer les Dépendances Efficacement

L’Injection de Dépendances (DI) est un modèle de conception et une forme d’Inversion de Contrôle (IoC) où un objet reçoit ses dépendances d’une source externe plutôt que de les créer lui-même. La DI favorise le couplage lâche, la testabilité et la modularité.


Injection par Constructeur

Les dépendances sont fournies via le constructeur de la classe.

Injection par Setter

Les dépendances sont fournies via des méthodes de type setter.

Injection par Interface

Les dépendances sont fournies via une méthode d’interface.


  1. Définir les Dépendances : Identifier les dépendances dont une classe a besoin.
  2. Injecter les Dépendances : Fournir ces dépendances à partir d’une source externe (par exemple, un conteneur DI).
  3. Utiliser les Dépendances : La classe utilise les dépendances injectées sans savoir comment elles sont créées.

// Injection par Constructeur
@Service
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
}
// Injection par Setter
@Service
public class UserService {
private UserRepository userRepository;
@Autowired
public void setUserRepository(UserRepository userRepository) {
this.userRepository = userRepository;
}
}



AvantagesInconvénients
Réduit le couplage entre les composantsPeut introduire de la complexité si mal utilisé
Rend les applications plus testables et modulairesNécessite l’apprentissage d’un framework ou conteneur DI
Facilite le changement d’implémentationsPeut conduire à un comportement “magique” si utilisé sans précaution

  • Refactorisez un petit projet pour utiliser la DI et observez les avantages.
  • Expérimentez avec différents types de DI (constructeur, setter, interface).