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