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.
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 constructorVeamos 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.