English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Se l'insieme contiene oggetti dipendenti, puoi utilizzare list , set nella ref elementi per iniettare queste informazioni. O Map.
In questo esempio, prendiamo ad esempio il "forum", dove Un problema può avere più risposteMa l'Answer ha le proprie informazioni, come answerId, answer e postedBy. In questo esempio sono state utilizzate quattro pagine:
Question.java Answer.java applicationContext.xml Test.java
In questo esempio, l'elenco che utilizziamo può contenere elementi duplicati, puoi utilizzare un set che contiene solo elementi unici. Tuttavia, devi modificare l'elenco impostato nel file applicationContext.xml e nell'file Question.java.
Question.java
Questa classe contiene tre attributi, due costruttori e il metodo displayInfo() per visualizzare le informazioni. In questo caso, 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<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
Questa classe ha tre attributi id, name e by, costruttore e metodo 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 + " " + by; } }
applicationContext.xml
ref L'elemento ref viene utilizzato per definire il riferimento a un altro bean. In questo caso, utilizziamo ref elemento bean L'attributo viene utilizzato per specificare il riferimento a un altro bean.
<?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.Answer"> <constructor-arg value="1"></constructor-arg> <constructor-arg value="Java è un linguaggio di programmazione"></constructor-arg> <constructor-arg value="John"></constructor-arg> </bean> <bean id="ans2" class="com.w3codebox.Answer"> <constructor-arg value="2"></constructor-arg> <constructor-arg value="Java è una Piattaforma"></constructor-arg> <constructor-arg value="Ravi"></constructor-arg> </bean> <bean id="q" class="com.w3codebox.Question"> <constructor-arg value="111"></constructor-arg> <constructor-arg value="Cosa è Java?"></constructor-arg> <constructor-arg> <list> <ref bean="ans1"/> <ref bean="ans2"/> </list> </constructor-arg> </bean> </beans>
Test.java
Questa classe recupera i 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(); } }