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

Exemple d'injection de setter et d'ensemble

Nous pouvons injecter des valeurs d'ensemble dans le cadre du cadre Spring via des méthodes setter. property Il est possible d'utiliser trois éléments à l'intérieur. Cela peut être:

List Set Map

Chaque ensemble peut avoir des valeurs basées sur des chaînes et des valeurs non basées sur des chaînes. Dans cet exemple, nous prenons "Forum" comme exemple, où Une question peut avoir plusieurs réponsesIl 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 contenant uniquement 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 propriétés avec des setters, des getters et la méthode displayInfo() pour obtenir des 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;
//setters and getters
public void displayInfo(){
    System.out.println(id+" "+name);
    System.out.println("answers are:");
    Iterator<String> itr=answers.iterator();
    while(itr.hasNext()){
        System.out.println(itr.next());
    }
}
}

applicationContext.xml

Ici, nous utilisons builder-La définition de l'élément list de 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">
<property name="id" value="1></property>
<property name="name" value="Qu'est-ce que Java ?"></property>
<property name="answers">
<list>
<value>Java est un langage de programmation</value>/value>
<value>Java est une plate-forme</value>/value>
<value>Java est une île</value>/value>
</list>
</property>
</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();
    
}
}