logo

Inyección de dependencia en primavera

  1. Inyección de dependencia en primavera
  2. Búsqueda de dependencias
  3. Inyección de dependencia

La inyección de dependencia (DI) es un patrón de diseño que elimina la dependencia del código de programación para que pueda ser fácil de administrar y probar la aplicación. La inyección de dependencia hace que nuestro código de programación esté débilmente acoplado. Para comprender mejor la DI, primero comprendamos la búsqueda de dependencia (DL):

Búsqueda de dependencias

La búsqueda de dependencia es un enfoque en el que obtenemos el recurso después de la demanda. Puede haber varias formas de obtener el recurso, por ejemplo:

 A obj = new AImpl(); 

De esta manera, obtenemos el recurso (instancia de la clase A) directamente mediante una nueva palabra clave. Otra forma es el método de fábrica:

 A obj = A.getA(); 

De esta manera, obtenemos el recurso (instancia de la clase A) llamando al método de fábrica estático getA().

edith mack hirsch

Alternativamente, podemos obtener el recurso mediante JNDI (Java Naming Directory Interface) como:

Java privado vs público
 Context ctx = new InitialContext(); Context environmentCtx = (Context) ctx.lookup('java:comp/env'); A obj = (A)environmentCtx.lookup('A'); 

Puede haber varias formas de obtener el recurso para obtener el recurso. Veamos el problema en este enfoque.

Problemas de búsqueda de dependencias

Existen principalmente dos problemas de búsqueda de dependencias.

    acoplamiento apretadoEl método de búsqueda de dependencias hace que el código esté estrechamente acoplado. Si se cambia el recurso, debemos realizar muchas modificaciones en el código.No es fácil de probarEste enfoque crea muchos problemas al probar la aplicación, especialmente en pruebas de caja negra.

Inyección de dependencia

La Inyección de Dependencia es un patrón de diseño que elimina la dependencia de los programas. En tal caso, proporcionamos la información de una fuente externa, como un archivo XML. Hace que nuestro código esté poco acoplado y sea más fácil de probar. En tal caso escribimos el código como:

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

En tal caso, la instancia de la clase Dirección la proporciona una fuente externa, como un archivo XML, ya sea mediante el método constructor o definidor.

Dos formas de realizar la inyección de dependencias en Spring Framework

Spring Framework proporciona dos formas de inyectar dependencia.

  • Por constructor
  • Por método de establecimiento

Próximos temas en Spring Dependency Inyección

Inyección de dependencia por constructor

Veamos cómo podemos inyectar dependencia por constructor.

harald balder

Inyección de dependencia por método de establecimiento

Veamos cómo podemos inyectar dependencia mediante el método setter.