¿Cómo funciona la inyección de dependencias en la primavera?

Dependency Injection

Visión de conjunto

inyección de frijol de primavera es también popularmente conocida como "inyección de dependencia (DI)’. El corazón de la infraestructura de Spring es "Inversión de Control (COI)’ y DI es la parte de la implementación de la COI. Vamos a empezar nuestra discusión con el supuesto de que el concepto y el propósito de la COI y DI es ya conocen.

En este articulo, nos centraremos en los diferentes tipos de inyecciones de frijol de primavera con algunos ejemplos prácticos de codificación.








Inyección de dependencia

Las inyecciones de frijol de primavera se pueden realizar de dos formas principales, uno es conocido como DI basado en Constructor y el otro es conocido como DI basado-Setter. En los siguientes apartados vamos a comprobar cómo estos pueden ser alcanzados.

Constructor basado DI

En una DI basado constructor, dependencias se inyectan a través de constructores. Cada argumento del constructor es un objeto de dependencia / frijol. El contenedor de primavera invoca a los constructores con los argumentos.

Vamos a ver un ejemplo. Hay dos clases, one is the País clase y la otra es la Estado clase. La País clase tiene una dependencia en el Estado clase. So, vamos a pasar a la dependencia a la País clase a través de su constructor (Como se muestra abajo).

Listing 1: clase de país

com.techalpine.spring paquete;

public class País {

Estado Estado privado;

pública País(Estado Estado) {

System.out.println(“Dentro del constructor País.” );

this.state = Estado;

}

Statename public void() {

state.stateName();

}

}








Now, esta dependencia se puede utilizar para llamar a diferentes métodos.

A continuación se presenta la Estado fragmentos de código de clase.

Listing 2: Estado de clase

com.techalpine.spring paquete;

Estado public class {

Estado público(){

System.out.println(“Dentro constructor Estado.” );

}

Statename public void() {

System.out.println(“Dentro nombre de Estado: West Bengal”);

}

}

A continuación se presenta el archivo de configuración XML para cablear los frijoles y sus dependencias. El bean id ('StateBean') of the Estado clase se utiliza como una referencia argumento del constructor en el País definición de clase de frijol. Now, los granos se definen y se conectan entre sí.

Listing 3: archivo de configuración XML

<?xml version=”1.0″ encoding=”UTF-8″?>

<frijoles xmlns =”http://www.springframework.org/schema/beans”

xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=”http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.2.xsd”>

<!– Definición de frijol País –>

<bean id=”countryBean” class =”com.techalpine.spring.Country”>

<constructor-arg ref =”stateBean”/>

</frijol>

<!– Definición de frijol Estado –>

<bean id=”stateBean” class =”com.techalpine.spring.State”>

</frijol>

</frijoles>

Lo que sigue es la clase principal para probar la inyección de frijol a base de constructor.

Listing 4: archivo de aplicación principal

com.techalpine.spring paquete;

import org.springframework.context.ApplicationContext;

importación org.springframework.context.support.FileSystemXmlApplicationContext;

TestBeanInjection clase pública {

public static void main(Cadena[] args) {

Application Context context = nueva FileSystemXmlApplicationContext(

“WebContent / WEB-INF / beanConfig.xml”);

País countryobj = (País)context.getBean(“countryBean”);

countryobj.stateName();

}

}








Now, ejecutar la clase como una aplicación independiente y se mostrará la siguiente salida en la consola.

Dentro del constructor Estado
Dentro del constructor País
Dentro nombre de Estado: West Bengal

Establece Bases DI

En una DI basado Setter, dependencias se pasan a través de los métodos setter. Primavera contenedor invoca los métodos setter de ejecutar las habas. Here, el mecanismo y los componentes son casi similar a la DI basado constructor. La única diferencia es, en la aprobación de las dependencias y de la configuración XML. En una inyección a base colocador, <propiedad> etiquetas se utilizan en lugar de <constructor-arg> tag.








Conclusión

En este artículo hemos explicado las maneras de cómo pueden ser inyectados granos de primavera. No hay una regla clara cuándo utilizar DI colocador basado o constructor basado. en general, vamos a por DI basado constructor cuando las dependencias son obligatorios, y seleccione DI basado en la moda cuando las dependencias son opcionales. Sin embargo, las combinaciones de ambos también se les permite.

 

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share