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

Injection de constructeur et exemple

Nous pouvons injecter des valeurs de collection via le constructeur dans le cadre du cadre Spring. constructeur-arg Un élément peut utiliser trois éléments.

peut être: List Set Map

Chaque ensemble peut avoir des valeurs basées sur des chaînes et des valeurs basées sur des valeurs non chaînes. Dans cet exemple, nous prenons l'exemple de "forum", où Une question peut avoir plusieurs réponses. Il y a au total trois pages:

Question.java applicationContext.xml Test.java

Dans cet exemple, la liste que nous utilisons peut contenir des éléments répétés, vous pouvez utiliser un set qui ne contient que des éléments uniques. Cependant, vous devez modifier la liste définie dans le fichier applicationContext.xml et la liste définie dans le fichier Question.java.

Question.java

Cette classe contient trois attributs, deux constructeurs et la méthode displayInfo() pour afficher les informations. Ici, nous utilisons une liste pour contenir plusieurs réponses.

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("answers sont:");
    Iterator<String> itr=answers.iterator();
    while(itr.hasNext()){
        System.out.println(itr.next());
    }
}
}

applicationContext.xml

Ici, builder est utilisé-La liste des éléments arg est définie.

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schéma/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schéma/p"
    xsi:schemaLocation="http://www.springframework.org/schéma/beans
 http://www.springframework.org/schéma/beans/spring-beans-3.0.xsd">
<bean id="q" class="com.w3codebox.Question">
<constructeur-arg valeur="111></constructeur-arg>
<constructeur-arg valeur="Qu'est-ce que java?"></constructeur-arg>
<constructeur-arg>
<liste>
<valeur>Java est un langage de programmation</valeur>
<valeur>Java est une plateforme</valeur>
<valeur>Java est une île d'Indonésie</valeur>
</liste>
</constructeur-arg>
</bean>
</beans>

Test.java

Cette classe récupère le Bean à partir du fichier applicationContext.xml et appelle la méthode 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();
    
}
}