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

مثال إدراج المكونات المسبقة (بوجود العناصر ذات الصلة)

في هذا المثال، نستخدم الخريطة بصفتها إجابة تحتوي على Answer و User. هنا، سنستخدم كل من المفتاح والقيمة كعنصر. تحتوي الإجابة على معلومات خاصة بها مثل answerId، الإجابة و postedDate، بينما تحتوي المستخدمة على معلومات خاصة بها مثل userId، اسم المستخدم، emailId.

مثل المثال السابق، هو مثال منتدى من بينهم يمكن لسؤال أن يكون له عدة إجابات،

Question.java

هذا الكائن يحتوي على ثلاثة خصائص، اثنين من وحدات البناء ووحدة عرض المعلومات displayInfo().

package com.w3codebox;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
public class Question {
private int id;
private String name;
private Map<Answer,User> answers;
public Question() {}
public Question(int id, String name, Map<Answer, User> answers) {
    super();
    this.id = id;
    this.name = name;
    this.answers = answers;
}
public void displayInfo(){
    System.out.println("question id:"+id);
    System.out.println("question name:"+name);
    System.out.println("Answers....");
    Set<Entry<Answer, User>> set=answers.entrySet();
    Iterator<Entry<Answer, User>> itr=set.iterator();
    while(itr.hasNext()){
        Entry<Answer, User> entry=itr.next();
        Answer ans=entry.getKey();
        User user=entry.getValue();
        System.out.println("Answer Information:");
        System.out.println(ans);
        System.out.println("Posted By:");
        System.out.println(user);
    }
}
}

Answer.java

package com.w3codebox;
import java.util.Date;
public class Answer {
private int id;
private String answer;
private Date postedDate;
public Answer() {}
public Answer(int id, String answer, Date postedDate) {}}
    super();
    this.id = id;
    this.answer = answer;
    this.postedDate = postedDate;
}
public String toString(){
    return "Id:"+id+" Answer:"+answer+" Posted Date:"+postedDate;
}
}

User.java

package com.w3codebox;
public class User {
private int id;
private String name,email;
public User() {}
public User(int id, String name, String email) {
    super();
    this.id = id;
    this.name = name;
    this.email = email;
}
public String toString(){
    return "Id:"+id+" Name:"+name+" Email Id:"+email;
}
}

applicationContext.xml

المدخل المسار مكون key-ref و value-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">
<constructor-arg value="1"</constructor-arg>
<constructor-arg value="Java هو لغة برمجة"></constructor-arg>
<constructor-arg value="12/12/2001"></constructor-arg>
</bean>
<bean id="answer2" class="com.w3codebox.Answer">
<constructor-arg value="2"</constructor-arg>
<constructor-arg value="Java هو منصة"></constructor-arg>
<constructor-arg value="12/12/2003"></constructor-arg>
</bean>
<bean id="user1" class="com.w3codebox.User">
<constructor-arg value="1"></constructor-arg>
<constructor-arg value="Arun Kumar"></constructor-arg>
<constructor-arg value="[email protected]"></constructor-arg>
</bean>
<bean id="user2" class="com.w3codebox.User">
<constructor-arg value="2"></constructor-arg>
<constructor-arg value="Varun Kumar"></constructor-arg>
<constructor-arg value="[email protected]"></constructor-arg>
</bean>
<bean id="q" class="com.w3codebox.Question">
<constructor-arg value="1"></constructor-arg>
<constructor-arg value="ما هو Java?"></constructor-arg>
<constructor-arg>
<map>
<entry key-ref="answer1" value-ref="user1"></entry>
<entry key-ref="answer2" value-ref="user2"></entry>
</map>
</constructor-arg>
</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();
}
}