logo

Injection de dépendances au printemps

  1. Injection de dépendances au printemps
  2. Recherche de dépendance
  3. Injection de dépendance

L'injection de dépendances (DI) est un modèle de conception qui supprime la dépendance du code de programmation afin de faciliter la gestion et le test de l'application. L'injection de dépendances rend notre code de programmation faiblement couplé. Pour mieux comprendre le DI, comprenons d'abord la recherche de dépendances (DL) :

Recherche de dépendance

La recherche de dépendances est une approche dans laquelle nous obtenons la ressource après la demande. Il peut y avoir différentes manières d'obtenir la ressource, par exemple :

 A obj = new AImpl(); 

De cette manière, nous obtenons la ressource (instance de classe A) directement par le nouveau mot-clé. Une autre méthode est la méthode d'usine :

 A obj = A.getA(); 

De cette façon, nous obtenons la ressource (instance de la classe A) en appelant la méthode de fabrique statique getA().

Alternativement, nous pouvons obtenir la ressource par JNDI (Java Naming Directory Interface) comme :

 Context ctx = new InitialContext(); Context environmentCtx = (Context) ctx.lookup('java:comp/env'); A obj = (A)environmentCtx.lookup('A'); 

Il peut y avoir différentes manières d'obtenir la ressource pour obtenir la ressource. Voyons le problème dans cette approche.

Problèmes de recherche de dépendances

Il existe principalement deux problèmes de recherche de dépendances.

    couplage serréL'approche de recherche de dépendances rend le code étroitement couplé. Si la ressource est modifiée, nous devons effectuer de nombreuses modifications dans le code.Pas facile à testerCette approche crée de nombreux problèmes lors du test de l'application, en particulier lors des tests en boîte noire.

Injection de dépendance

L'injection de dépendances est un modèle de conception qui supprime la dépendance des programmes. Dans ce cas, nous fournissons les informations provenant d'une source externe telle qu'un fichier XML. Cela rend notre code faiblement couplé et plus facile à tester. Dans ce cas, nous écrivons le code sous la forme :

 class Employee{ Address address; Employee(Address address){ this.address=address; } public void setAddress(Address address){ this.address=address; } } 

Dans ce cas, l'instance de la classe Address est fournie par une source externe telle qu'un fichier XML, soit par le constructeur, soit par la méthode setter.

Deux façons d'effectuer l'injection de dépendances dans le framework Spring

Le framework Spring propose deux façons d'injecter des dépendances

  • Par constructeur
  • Par la méthode Setter

Sujets à venir dans Spring Dependency Injection

Injection de dépendances par constructeur

Voyons comment injecter une dépendance par constructeur.


Injection de dépendances par méthode setter

Voyons comment nous pouvons injecter une dépendance par la méthode setter.