Spring · Fiche 01

Spring Core (IoC/DI)

Inversion de contrôle et injection de dépendances : les deux mécanismes fondateurs du conteneur Spring.

Inversion de Contrôle et Injection de Dépendances : les deux concepts au cœur du framework Spring.

🎯 Concepts fondamentaux

Inversion de Contrôle (IoC)

Le framework prend le contrôle de la création et de la gestion des objets : au lieu d’instancier ses dépendances avec new, une classe les reçoit du conteneur Spring.

  • Le conteneur Spring gère le cycle de vie des beans (création, initialisation, destruction)
  • Réduction du couplage entre les classes
  • Configuration centralisée

Injection de Dépendances (DI)

Les dépendances sont injectées automatiquement par Spring dans les objets qui en ont besoin. Trois modes d’injection existent :

  • Constructor Injection (recommandée) : les dépendances sont passées au constructeur, ce qui garantit un objet complet et immuable
  • Setter Injection : les dépendances sont injectées via des setters, utile pour les dépendances optionnelles
  • Field Injection : injection directe sur le champ via @Autowired, plus concise mais plus difficile à tester

Piège d’entretien : l’injection par constructeur est recommandée car elle rend les dépendances obligatoires explicites, permet de déclarer les champs final et facilite les tests unitaires (on peut instancier la classe sans conteneur Spring).

📝 Annotations principales

@Component — Marque une classe comme bean Spring : elle sera détectée par le scan de composants et gérée par le conteneur.

@Service — Spécialisation de @Component pour la couche service (logique métier).

@Repository — Spécialisation de @Component pour la couche d’accès aux données ; ajoute la traduction des exceptions de persistance.

@Controller — Spécialisation de @Component pour la couche présentation (gestion des requêtes web).

@Autowired — Injection automatique de dépendances : Spring recherche un bean du type demandé et l’injecte.

@Qualifier — Spécifie quel bean injecter lorsque plusieurs candidats du même type existent dans le conteneur.

Interro écrite

7 questions pour valider la fiche. Une seule réponse par question.

Question 1/7Que signifie l'Inversion de Contrôle (IoC) dans Spring ?