English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Se la collezione contiene oggetti dipendenti, puoi utilizzare list , set nelle ref per iniettare queste informazioni. O Map. In questo caso, utilizzeremo l'elemento property all'interno dell'elemento viene utilizzato l'elemento list, set o map.
In questo esempio, prendiamo ad esempio un forum, dove Un problema può avere più risposteMa 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, la lista che utilizziamo può contenere elementi duplicati, 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<Answer> answers; //setter e getter 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, il costruttore e il metodo toString().
package com.w3codebox; public class Answer { private int id; private String name; private String by; //setter e getter public String toString() { return id + " " + name + " " + by; {} {}
applicationContext.xml
ref L'elemento viene utilizzato per definire un riferimento a un altro bean. In questo caso, utilizziamo ref di elemento Proprietà 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="answer1" class="com.w3codebox.Answer"> <property name="id" value="1"></property> <property name="name" value="Java è un linguaggio di programmazione"></property> <property name="by" value="Ravi Malik"></property> </bean> <bean id="answer2" class="com.w3codebox.Answer"> <property name="id" value="2"></property> <property name="name" value="Java è una piattaforma"></property> <property name="by" value="Sachin"></property> </bean> <bean id="q" class="com.w3codebox.Question"> <property name="id" value="1"></property> <property name="name" value="Cosa è Java?"></property> <property name="answers"> <list> <ref bean="answer1"/> <ref bean="answer2"/> </list> </property> </bean> </beans>
Test.java
此类从 applicationContext.xml 文件获取 Bean 并调用 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(); {} {}