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

Iniezione di costruttore e esempio

Possiamo注入 valori di insieme nel costruttore del framework Spring. constructor-arg All'interno dell'elemento possono essere utilizzati tre elementi.

può essere: List Set Map

Ogni insieme può avere valori basati su stringhe e su valori non stringhe. In questo esempio, prendiamo come esempio il "forum", dove Una domanda può avere più risposteCi sono in totale tre pagine:

Question.java applicationContext.xml Test.java

In questo esempio, la lista che utilizziamo può contenere elementi duplicati, ma puoi utilizzare un set che contiene solo elementi unici. Tuttavia, devi modificare la lista impostata nel file applicationContext.xml e la lista impostata nel file Question.java.

Question.java

Questa classe contiene tre attributi, due costruttori e il metodo displayInfo() per visualizzare le informazioni. In questo esempio, utilizziamo una lista per contenere più risposte.

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

applicationContext.xml

Qui viene definita una lista utilizzando l'elemento list di builder-arg.

<?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.Question">
<constructor-arg value="111"></constructor-arg>
<constructor-arg value="Cos'è java?"></constructor-arg>
<constructor-arg>
<list>
<value>Java è un linguaggio di programmazione</value>
<value>Java è una piattaforma</value>
<value>Java è un'isola dell'Indonesia</value>
</list>
</constructor-arg>
</bean>
</beans>

Test.java

Questa classe recupera il Bean dal file applicationContext.xml e chiama il metodo 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();
    
}
}