Injection de Dépendances & IoC — Quatre Techniques
Une étude pratique de l'inversion de contrôle en Java : le même découpage DAO/métier câblé de quatre façons — injection par setter manuelle, chargement dynamique par réflexion depuis un fichier de config, config conteneur Spring XML, et scan d'annotations Spring (@Component/@Autowired).
Implémenter une app pilotée par interfaces de quatre façons : statique, réflexion dynamique, XML Spring, annotations Spring
Un parcours fondamental de l'inversion de contrôle & injection de dépendances — « dépendre des interfaces, pas des implémentations » — en construisant la même app de quatre façons.
Structure
java-ioc-1/ (Maven + Spring 6)
├── dao/ IDao + implémentations
├── metier/ IMetier + implémentations
└── presentation/ 4 démos d'injection
enset_ioc/ (point de départ Java pur)
Quatre techniques d'injection
| Démo | Méthode | Comment |
|---|---|---|
| Presentation | Statique | new manuel + injection par setter |
| Presentation2 | Dynamique | chargement de classe par réflexion depuis config.txt |
| Presentationxml | Spring XML | câblage conteneur via applicationContext.xml |
| PresentationAnnotation | Annotations Spring | scan @Component + @Autowired |
Pourquoi c'est important
IDao (contrat d'accès aux données) et IMetier (contrat métier) ne sont couplés que par interfaces, donc c'est le conteneur — pas le code — qui décide quelle implémentation injecter. C'est le principe sur lequel reposent tous les projets Spring suivants de cette collection.