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

مثال على إدراج المزيج (مع كائن مرتبط) المزيج

إذا كان هناك كائنات معتمدة في المجموعة، يمكن استخدام list , set في ref لإدراج هذه المعلومات. أو Mapهنا، سنقوم باستخدام علامة property يستخدم العنصر list،set أو map.

في هذا المثال، نستخدم مثال على منتدى حيث يمكن لسؤال أن يكون له عدة إجاباتلكن Answer يمتلك معلومات خاصة به، مثل answerId،answer و postedBy. في هذا المثال، تم استخدام أربع صفحات:

Question.java Answer.java applicationContext.xml Test.java

في هذا المثال، يمكن للقائمة التي نستخدمها أن تحتوي على عناصر مكررة، يمكنك استخدام set يحتوي على عناصر فريدة فقط. ولكن، تحتاج إلى تعديل القائمة التي تم تعيينها في ملف applicationContext.xml والقائمة التي تم تعيينها في ملف Question.java.

Question.java

يحتوي هذا الفئة على ثلاث خصائص، اثنين من بنائين ووظيفة عرض المعلومات displayInfo(). هنا، نستخدم القائمة لتحديد عدة إجابات.

package com.w3codebox;
import java.util.Iterator;
import java.util.List;
public class Question {
private int id;
private String name;
private List<Answer> answers;
// setters and getters
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

يملك هذا الفئة ثلاث خصائص id، name وby ووظيفة بناء و toString().

package com.w3codebox;
public class Answer {
private int id;
private String name;
private String by;
// setters and getters
public String toString() {
    return id + "  " + name + "  " + by;
}
}

applicationContext.xml

ref العنصر يستخدم لتحديد استدلال آخر bean. هنا، نستخدم ref النوع الكتلة باستخدام خاصية لتحديد استدلال آخر 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 هو لغة برمجة"></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 هو منصة"></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="ما هو Java?"></property>
<property name="answers">
<list>
<ref bean="answer1"/>
<ref bean="answer2"/>
</list>
</property>
</bean>
</beans>

Test.java

هذا الكائن يحصل على Bean من ملف applicationContext.xml ويقوم بتشغيل طريقة 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();
    
}
}