English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Wenn die Sammlung abhängige Objekte enthält, kann list , set in ref Elemente, um diese Informationen einzubinden. Oder Map.
In diesem Beispiel verwenden wir "Forum" als Beispiel, wo Eine Frage kann mehrere Antworten habenaber der Answer hat seine eigenen Informationen, wie z.B. answerId, answer und postedBy. In diesem Beispiel werden vier Seiten verwendet:
Question.java Answer.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. Sie müssen jedoch die Liste im applicationContext.xml-Datei und die Liste im Question.java-Datei ändern.
Question.java
Diese Klasse enthält drei Attribute, zwei Konstruktoren und die displayInfo () -Methode zur Anzeige 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<Answer> answers; public Question () {} public Question (int id, String name, List<Answer> answers) { super(); this.id = id; this.name = name; this.answers = answers; } public void displayInfo () { System.out.println (id+" "+name); System.out.println ("answers are:"); Iterator<Answer> itr = answers.iterator (); while (itr.hasNext ()) { System.out.println(itr.next()); } } }
Answer.java
Diese Klasse hat drei Attribute id, name und by, einen Konstruktor und die Methode toString().
package com.w3codebox; public class Answer { private int id; private String name; private String by; public Answer() {} public Answer(int id, String name, String by) { super(); this.id = id; this.name = name; this.by = by; } public String toString(){ return id+" "+name+" "+durch; } }
applicationContext.xml
ref Element wird verwendet, um einen Verweis auf einen anderen Bean zu definieren. Hier verwenden wir ref Element Bean Eigenschaften, um einen Verweis auf einen anderen Bean zu spezifizieren.
<?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="ans1" class="com.w3codebox.Antwort"> <konstruktor-arg value="1></Konstruktor-arg> <konstruktor-arg value="Java ist eine Programmiersprache"></Konstruktor-arg> <konstruktor-arg value="John"></Konstruktor-arg> </bean> <bean id="ans2" class="com.w3codebox.Antwort"> <konstruktor-arg value="2></Konstruktor-arg> <konstruktor-arg value="Java ist eine Plattform"></Konstruktor-arg> <konstruktor-arg value="Ravi"></Konstruktor-arg> </bean> <bean id="q" class="com.w3codebox.Frage"> <konstruktor-arg value="111></Konstruktor-arg> <konstruktor-arg value="Was ist java?"></Konstruktor-arg> <konstruktor-arg> <liste> <ref bean="ans1"/> <ref bean="ans2"/> </Liste> </Konstruktor-arg> </bean> </beans>
Test.java
Diese Klasse liest 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(); } }