Spring – Setter Inyección con Colección

La inyección de dependencia es la funcionalidad principal proporcionada por Spring IOC (Inversion of Control). El módulo Spring-Core es responsable de inyectar dependencias a través de los métodos Constructor o Setter. En Setter Dependency Injection (SDI), la dependencia se inyectará con la ayuda de los métodos setters y getters. Se utiliza un archivo de configuración de bean para establecer DI como SDI en el bean. Para ello, la propiedad que se establecerá con SDI se declara bajo la etiqueta <property> en el archivo bean-config.

Una colección en Java es un grupo de objetos individuales. Spring framework nos proporciona la facilidad de inyección de Setter utilizando las siguientes colecciones:

  • Lista
  • Mapa
  • Establecer

Implementación:

A. Empresa.java

Una empresa tiene una lista de empleados.

Java

// Java program to Illustrate Company Class
 
package com.geeksforgeeks.org;
 
// Importing required classes
import java.util.*;
 
// Company Class
class Company {
 
    // Class data members
    private String companyName;
    private List<String> employees;
 
    // Setter
    public void setCompanyName(String companyName)
    {
        this.companyName = companyName;
    }
 
    // Setter
    public void setEmployees(List<String> employees)
    {
        this.employees = employees;
    }
 
    // Getter
    public String getCompanyName() { return companyName; }
 
    // Getter
    public List<String> getEmployees() { return employees; }
 
    // Method
    public void display()
    {
        System.out.println("Company: " + companyName);
        System.out.println("Employee list: " + companyName);
 
        // Iterating over using for each loop
        for (String employee : employees) {
            System.out.println("-" + employee);
        }
    }
}

B. applicationContext.xml

Usaremos el elemento de propiedad para la inyección de setter. El elemento de nombre del atributo de propiedad será igual al nombre de la variable y el elemento de valor contendrá el valor que desea asignar a esa variable.

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="company" class="com.geeksforgeeks.org.Company"> 
        <property name="companyName" value="GeeksForGeeks"></property> 
        <property name="employees">
            <list>
                 <value>"John"</value>
                <value>"Max"</value>
                <value>"Sam"</value>
             </list>
         </property>
    </bean> 
</beans> 

C. Principal.java

Java

// Java Program to Illustrate Application Class
 
package com.geeksforgeeks.org;
 
// Importing required classes
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
 
// Application (Main) Class
public class Main {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating a new class path resource
        Resource resource = new ClassPathResource(
            "applicationContext.xml");
 
        // Creating an object of BeanFactory class
        BeanFactory factory = new XmlBeanFactory(resource);
 
        // Creating an object of Employee class
        Employee e = (Employee)factory.getBean("employee");
 
        // Calling display() method inside main() method
        e.display();
    }
}

Producción:

Company: GeeksForGeeks
Employee list:
-John
-Max
-Sam

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 *