Primavera – Inyección de constructor con colección – Part 1

En la inyección de constructor, la inyección de dependencia se inyectará con la ayuda de constructores. Ahora, para establecer la inyección de dependencia como inyección de dependencia del constructor (CDI) en el bean, se realiza a través del archivo de configuración del bean. Para esto, la propiedad que se establecerá con la inyección de dependencia del constructor se declara bajo la etiqueta <constructor-arg> en el archivo bean-config.

Ejemplo:

Java

package com.geeksforgeeks.org;
  
import com.geeksforgeeks.org.IGeek;
  
public class GFG {
  
    // The object of the interface IGeek
    IGeek geek;
  
    // Constructor to set the CDI
    GFG(IGeek geek) { this.geek = geek; }
}

Configuración del CDI en el archivo bean-config: 

XML

<beans
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-2.5.xsd">
   
    <bean id="GFG" class="com.geeksforgeeks.org.GFG">
        <constructor-arg>
            <bean class="com.geeksforgeeks.org.impl.CsvGFG" />
        </constructor-arg>
    </bean>
       
<bean id="CsvGFG" class="com.geeksforgeeks.org.impl.CsvGFG" />
<bean id="JsonGFG" class="com.geeksforgeeks.org.impl.JsonGFG" />
           
</beans>

Inyección de constructor con la colección.

Los marcos Spring nos brindan la posibilidad de inyectar valores de colección a través del constructor en nuestra aplicación Spring. Las siguientes colecciones se pueden usar dentro de la etiqueta <constructor-arg>:

  • lista
  • establecer
  • mapa

Ejemplo:

1) Empleado.java

Crear una clase Empleado:

Java

package com.geeksforgeeks.org;
  
import com.geeksforgeeks.org.IGeek;
import java.util.List;
  
public class Employee {
    private String name;
    private String employeeID;
    private String department;
    private List<String> address;
  
    public Employee(List<String> address)
    {
        this.address = (List<String>)address;
    }
  
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public String getemployeeID() { return employeeID; }
    public void setemployeeID(String employeeID)
    {
        this.employeeID = employeeID;
    }
    public String getdepartment() { return department; }
    public void setdepartment(String department)
    {
        this.department = department;
    }
  
    public List<String> getAddress() { return address; }
  
    public void display()
    {
        System.out.println("Name: " + getName());
        System.out.println("Employee ID: "
                           + getEmployeeID());
        System.out.println("Department: "
                           + getDepartment());
        System.out.println("Address: " + getAddress());
    }
}

2) contexto de aplicación.xml

Para definir la lista, use el elemento de lista de constructor-arg.

XML

<?xml version="1.0" encoding="UTF-8"?>  
<beans  
    xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:p="http://www.springframework.org/schema/p"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
    
    <bean id="employee" class="com.geeksforgeeks.org.Employee">  
        <constructor-arg value="Ram"></constructor-arg>  
        <constructor-arg value="101"></constructor-arg> 
        <constructor-arg value="Software testing"></constructor-arg> 
        <constructor-arg>  
            <list>  
                <value>Gurugram</value>  
                <value>Haryana</value>  
                <value>India</value>  
            </list>  
        </constructor-arg>  
    </bean>  
    
</beans>

3) Prueba.java

Probando la aplicación del resorte:

Java

package com.geeksforgeeks.org;
  
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
  
public class Test {
    public static void main(String[] args)
    {
        Resource resource = new ClassPathResource(
            "applicationContext.xml");
        BeanFactory factory = new XmlBeanFactory(resource);
  
        Employee e = (Employee)factory.getBean("employee");
        e.display();
    }
}

Producción:

Name: Ram
Employee ID: 101
Department: Software testing
Address: [Gurugram, Haryana, India]

Publicación traducida automáticamente

Artículo escrito por abhinavjain194 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *