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

Injeção de construtor e exemplo

Podemos injetar valores de conjunto no Spring Framework através do construtor. constructor-arg Dentro de um elemento podem ser usados três elementos.

pode ser: List Set Map

Cada conjunto pode ter valores baseados em strings e baseados em não strings. Neste exemplo, tomamos como exemplo o "fórum", onde Um problema pode ter várias respostas. Ao todo, há três páginas:

Question.java applicationContext.xml Test.java

Neste exemplo, a lista que usamos pode conter elementos repetidos, você pode usar um set que contenha apenas elementos únicos. No entanto, você precisa alterar a lista configurada no arquivo applicationContext.xml e na classe Question.java.

Question.java

Este classe contém três atributos, dois construtores e o método displayInfo() para exibir informações. Aqui, usamos uma lista para conter várias respostas.

package com.w3codebox;
import java.util.Iterator;
import java.util.List;
public class Pergunta {}}
private int id;
private String nome;
private List<String> respostas;
public Pergunta() {}
public Pergunta(int id, String nome, List<String> respostas) {
    super();
    this.id = id;
    this.nome = nome;
    this.answers = answers;
}
public void exibirInformações(){
    System.out.println(id+" "+nome);
    System.out.println("as respostas são:");
    Iterator<String> itr=answers.iterator();
    while(itr.hasNext()){
        System.out.println(itr.next());
    }
}
}

applicationContext.xml

Aqui é usado o construtor-A lista de elementos arg define a lista.

<?xml versão="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/esquema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instância"
    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.Pergunta">
<constructor-arg valor="111></constructor-arg>
<constructor-arg valor="O que é java?"></constructor-arg>
<constructor-arg>
<lista>
<valor>Java é um linguagem de programação</valor>
<valor>Java é uma Plataforma</valor>
<valor>Java é uma Ilha da Indonésia</valor>
</lista>
</constructor-arg>
</bean>
</beans>

Test.java

Esta classe obtém o Bean do arquivo applicationContext.xml e chama o 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();
    
}
}