La inyección de dependencia o el COI es un concepto central del marco de primavera que ayuda a administrar los objetos de frijoles en la aplicación. La inyección de dependencia, o DI, como su nombre indica, administra los objetos dependientes y hace que nuestro código se acople libremente.
Por ejemplo, una aplicación de resorte puede construir varios módulos que dependen unos de otros para formar una aplicación completamente funcionando. Los objetos dependientes deben proporcionar su instancia durante el tiempo de ejecución, de otro modo, la aplicación puede romperse. Entonces, como marco, Spring maneja esta situación y proporciona objetos de frijoles en tiempo de ejecución.
El COI (inversión de control) hace esta tarea, yo.mi., inyecta dependencias durante la creación de frijoles. Es un contenedor central que crea, configura, administra objetos e incluso administra todo el ciclo de vida de un objeto.
Spring DI se clasifica principalmente como un Basado en constructor inyección de dependencia y un Basado en el setter inyección de dependencia.
En este artículo, lo haremos Primero aprenda sobre constructor basado en inyección de dependencia y el movimiento hacia el setter en el siguiente tema.
Comencemos con una aplicación Spring basada en Maven que contiene los siguientes archivos Java y configación.
// Empleado.Java
Es una clase simple de frijoles que contiene dos propiedades y métodos de setter-getter.
Paquete com.Linuxhint.frijoles;
Org de importación.springframework.estereotipo.Componente;
@Componente
Empleado de clase pública
ID privado int;
nombre de cadena privada;
public String getName ()
nombre de retorno;
public void setName (nombre de cadena)
este.nombre = nombre;
public int getId ()
ID de retorno;
public void setid (int id)
este.id = id;
// Gerente de proyecto.Java
Aquí, creamos otro frijol que contiene algunos métodos de getter-setter, y el punto importante es observar el constructor ProjectManager () que actúa como un DI basado en el constructor. Crea un objeto de frijol de la clase de empleados mientras se carga al contexto de la aplicación.
Paquete com.Linuxhint.frijoles;
Org de importación.springframework.estereotipo.Componente;
@Componente
clase pública ProjectManager
empleado privado empleado;
Public ProjectManager (empleado empleado)
este.empleado = empleado;
public void setInfo (int id, nombre de cadena)
empleado.setid (id);
empleado.setName (nombre);
public String getInfo ()
return "id ="+empleado.getId ()+"\ nname ="+Empleado.getName ();
// SpringApp.Java
Esta es la clase principal que carga SpringConfig. Aquí, utilizamos el método getBean () para obtener un objeto de la clase ProjectManager. Después de eso, establecemos y obtenemos valores para este objeto.
Paquete com.Linuxhint;
Org de importación.springframework.contexto.anotación.AnnotationConfigApplicationContext;
importación.Linuxhint.frijoles.Gerente de proyecto;
clase pública SpringApp
public static void main (string [] args)
AnnotationConfigApplicationContext AC = New AnnotationConfigApplicationContext (SpringConfig.clase);
ProjectManager PM = AC.GetBean (ProjectManager.clase);
pm.setinfo (102, "romano");
Resultado de cadena = PM.conseguir información();
Sistema.afuera.println (resultado);
C.A.cerca();
// SpringConfing.Java
Esta es la clase de configuración que ayuda a configurar la aplicación. Es importante al configurar aplicaciones utilizando anotaciones.
Paquete com.Linuxhint;
Org de importación.springframework.contexto.anotación.Componentes;
Org de importación.springframework.contexto.anotación.Configuración;
@Configuración
@ComponentsCan ("com.Linuxhint.*")
clase pública SpringConfig
// POM.xml
Este archivo contiene dependencias maven para el proyecto de primavera.
4.0.0 comunicarse.Linuxhint SpringApp 0.0.1-snapshot SpringApp Una simple aplicación de primavera organizar.springframework núcleo de primavera $ primavera.versión organizar.springframework contexto de primavera $ primavera.versión Javax.anotación Javax.anotación-api 1.3.2 5.2.8.LIBERAR
Estructura del proyecto
Después de crear todos los archivos y código, nuestra estructura del proyecto se muestra a continuación:
Ejecutar la aplicación
Ahora, ejecute la aplicación y debe mostrar la siguiente salida en la ventana de la consola:
ID = 102
Nombre = romano
Configuración utilizando el código XML
Puede hacer esto si desea configurar su aplicación utilizando el código XML. Sin embargo, la configuración XML es una forma antigua de hacerlo, pero todavía es compatible con el marco de los primaveras. Tiene la opción de configurar su aplicación utilizando anotaciones XML o Java.
En el caso XML, solo necesitamos crear un archivo ApplicationContext.xml y léalo en el SpringApp archivo de clase. Su ApplicationContext.xml El archivo debe contener el siguiente código XML:
// ApplicationContext.xml
xmlns: xsi = "http: // www.W3.org/2001/xmlschema-instancia "
xmlns: p = "http: // www.springframework.org/esquema/p "
xsi: schemalocation = "http: // www.springframework.org/esquema/frijoles
http: // www.springframework.org/esquema/frijoles/beans-beans-3.0.XSD ">class = "com.Linuxhint.frijoles.ProjectManager " />
Aquí, la etiqueta se usa para especificar la clase Bean, y la ID especifica la instancia de Bean. La etiqueta especifica la dependencia del constructor y la etiqueta para inyectar el objeto en el constructor.
Conclusión
En este artículo, hemos aprendido sobre la inyección de dependencia de primavera basada en el constructor. Aprendimos su configuración utilizando anotaciones Java y XML ambas. Dado que es un concepto central del marco de primavera, debe aprenderlo con el ejemplo de ejecución que hemos explicado.