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

Konstruktorinjektion und Beispiel

Wir können Sammlungswerte durch Konstruktorinjektion im Spring-Framework injizieren. Konstruktor-arg Innerhalb eines Elements können drei Elemente verwendet werden.

kann sein: List Set Map

Jede Sammlung kann Werte basierend auf Strings und nicht-stringbasierten Werten haben. In diesem Beispiel verwenden wir "Forum" als Beispiel, wo Ein Problem kann mehrere Antworten haben. Es gibt insgesamt drei Seiten:

Question.java applicationContext.xml Test.java

In diesem Beispiel kann die Liste, die wir verwenden, wiederholte Elemente enthalten. Sie können eine Set verwenden, die nur einzigartige Elemente enthält. Aber Sie müssen die Liste in der applicationContext.xml-Datei und die Liste in der Question.java-Datei ändern.

Question.java

Diese Klasse enthält drei Eigenschaften, zwei Konstruktoren und die displayInfo()-Methode zum Anzeigen von Informationen. Hier verwenden wir eine Liste, um mehrere Antworten zu speichern.

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

applicationContext.xml

Hier wird der Builder verwendet-Die Liste der arg-Elemente definiert eine Liste.

<?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="q" class="com.w3codebox.Frage">
<Konstruktor-arg wert="111></Konstruktor-arg>
<Konstruktor-arg wert="Was ist java?"></Konstruktor-arg>
<Konstruktor-arg>
<Liste>
<Wert>Java ist eine Programmiersprache</Wert>
<Wert>Java ist eine Plattform</Wert>
<Wert>Java ist eine Insel von Indonesien</Wert>
</Liste>
</Konstruktor-arg>
</bean>
</beans>

Test.java

Diese Klasse holt Bean aus der Datei applicationContext.xml und ruft die displayInfo-Methode auf.

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();
    
}
}