English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Inyección de constructor y ejemplo

Podemos inyectar valores de colección a través del constructor en el framework Spring. constructor-arg Se pueden usar tres elementos dentro del elemento.

puede ser: List Set Map

Cada conjunto puede tener valores basados en cadenas y basados en no cadenas. En este ejemplo, tomamos como ejemplo el "foro", donde Un problema puede tener múltiples respuestas. Hay un total de tres páginas:

Question.java applicationContext.xml Test.java

En este ejemplo, la lista que utilizamos puede contener elementos repetidos, pero puede usar un set que solo contenga elementos únicos. Sin embargo, debe cambiar la lista configurada en el archivo applicationContext.xml y la lista configurada en el archivo Question.java.

Question.java

Este clase contiene tres propiedades, dos constructores y el método displayInfo() para mostrar información. Aquí, utilizamos una lista para contener múltiples respuestas.

package com.w3codebox;
import java.util.Iterator;
import java.util.List;
public class Question {}}
private int id;
private String name;
private List<String> answers;
public Question() {}
public Question(int id, String name, List<String> answers) {
    super();
    this.id = id;
    this.name = name;
    this.answers = answers;
}
public void displayInfo(){
    System.out.println(id+" "+name);
    System.out.println("Las respuestas son:");
    Iterator<String> itr=answers.iterator();
    while(itr.hasNext()){
        System.out.println(itr.next());
    }
}
}

applicationContext.xml

Se utiliza builder aquí-La lista de elementos arg define una lista.

<?xml versión="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/esquema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instancia"
    xmlns:p="http://www.springframework.org/esquema/p"
    xsi:schemaLocation="http://www.springframework.org/esquema/beans
 http://www.springframework.org/esquema/beans/spring-beans-3.0.xsd">
<bean id="q" class="com.w3codebox.Pregunta">
<constructor-arg valor="111></constructor-arg>
<constructor-arg valor="¿Qué es java?"></constructor-arg>
<constructor-arg>
<lista>
<valor>Java es un lenguaje de programación</valor>
<valor>Java es una plataforma</valor>
<valor>Java es una isla de Indonesia</valor>
</lista>
</constructor-arg>
</bean>
</beans>

Test.java

Esta clase obtiene el Bean del archivo applicationContext.xml y llama al método displayInfo.

package com.w3codebox;
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 r = new ClassPathResource("applicationContext.xml");
    BeanFactory factory = new XmlBeanFactory(r);
    
    Question q = (Question) factory.getBean("q");
    q.displayInfo();
    
}
}