Primavera: inyección Setter con mapa sin strings

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:

Implementación

El mapa tendrá tanto la clave como el valor como no strings. La clave será Empleado que tiene los siguientes campos:

  • Nombre
  • ID de empleado
  • Departamento

El valor será Dirección que tiene los siguientes parámetros:

  • Casa no.
  • Código PIN
  • Estado
  • País

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 com.geeksforgeeks.org.Address;
import com.geeksforgeeks.org.Employee;
import java.util.*;
import java.util.Map.Entry;
   
// Class
public class Company {
   
    // Class member variable
    private Map<Employee, Address> employees;
   
    // Method
    public void display()
    {
        // Iterating over Map using for each loop
        for (Map.Entry<Employee, Address> entry :
             employees.entrySet()) {
   
            // Print statement
            System.out.println(
                "Employee Data ->"
                + entry.getKey().toString() + " Address ->"
                + entry.getValue().toString());
        }
    }
}

B. Empleado.java

Java

// Java Program to Illustrate Employee Class
   
package com.geeksforgeeks.org;
   
// Importing required classes
import com.geeksforgeeks.org.Address;
   
// Class
public class Employee {
   
    // Class data members
    private String name;
    private String employeeID;
    private String department;
   
    public Employee(String name, String employeeID,
                    String department)
    {
        // This keyword refers to current instance itself
        this.name = name;
        this.employeeID = employeeID;
        this.department = department;
    }
   
    // Method
    // Overriding toString() method
    public String toString()
    {
        return ("[" + name + "," + employeeID + ","
                + department + "]");
    }
}

C. Dirección.java

Java

// Java Program to Illustrate Address Class
   
package com.geeksforgeeks.org;
   
// Class
public class Address {
   
    // Class data members
    private String houseNo;
    private String pincode;
    private String state;
    private String country;
   
    // Constructor
    public Address(String houseNo, String pincode,
                   String state, String country)
    {
        super();
        this.houseNo = houseNo;
        this.pincode = pincode;
        this.state = state;
        this.country = country;
    }
   
    // Method
    // Overriding toString() method
    public String toString()
    {
        return "[" + houseNo + "," + pincode + "," + state
            + "," + country + "]";
    }
}

D. applicationContext.xml

Archivo de configuración de nuestro proyecto.

Java

<?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="employee1" class="com.geeksforgeeks.org.Employee">  
      <property name="name" value="Sahil"></property>  
      <property name="employeeID" value="101"></property>  
      <property name="department" value="Game development"></property>  
    </bean>  
      <bean id="address1" class="com.geeksforgeeks.org.Address">  
      <property name="houseNo" value="2"></property>  
      <property name="pincode" value="110111"></property>  
      <property name="state" value="Bihar"></property>  
      <property name="country" value="India"></property>  
    </bean>  
  
    <bean id="company" class="com.geeksforgeeks.org.Company">  
      <map>  
      <entry key-ref="employee1" value-ref="address1"></entry>  
      </map>  
      </property>  
    </bean>  
    
</beans>

E. Prueba.java

Archivo principal para ejecutar nuestro proyecto.

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.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
   
// Application class
// Main class
public class Test {
   
    // Main driver method
    public static void main(String[] args)
    {
        // Creating a 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
        Company c = (Company)factory.getBean("company");
   
        // Calling print() method inside main() method
        c.display();
    }
}

Producción:

Employee Data -> [Sahil, 101, Game development], Address -> [2, 110111, Bihar, India]

Publicación traducida automáticamente

Artículo escrito por tanwarsumit440 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 *