English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا المثال، نستخدم الخريطة يتم استخدامه كإجابة تحتوي على Answer و User. هنا، سنستخدم كل من المفتاح والقيمة ككائنات. تحتوي الإجابة على معلومات خاصة بها مثل answerId، الإجابة و postedDate، بينما يحتوي المستخدم على معلومات خاصة به مثل userId، اسم المستخدم، emailId.
مثل المثال السابق، هو مثال لمنتدى حيث يمكن لسؤال أن يكون له عدة إجابات.
Question.java
هذا الكائن يحتوي على ثلاث خصائص، وهي طرق getters و setters و 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; //getters and setters 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+" Date Posted:"+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"> <property name="id" value="1"></property> <property name="answer" value="Javaُ هو لغة برمجة"></property> <property name="postedDate" value="12/12/2001"></property> </bean> <bean id="answer2" class="com.w3codebox.Answer"> <property name="id" value="2"></property> <property name="answer" value="Javaُ هو منصة"></property> <property name="postedDate" value="12/12/2003"></property> </bean> <bean id="user1" class="com.w3codebox.User"> <property name="id" value="1"></property> <property name="name" value="Arun Kumar"></property> <property name="email" value="[email protected]"></property> </bean> <bean id="user2" class="com.w3codebox.User"> <property name="id" value="2"></property> <property name="name" value="Varun Kumar"></property> <property name="email" value="[email protected]"></property> </bean> <bean id="q" class="com.w3codebox.Question"> <property name="id" value="1"></property> <property name="name" value="ما هو Java?"></property> <property name="answers"> <map> <entry key-ref="answer1" value-ref="user1"></entry> <entry key-ref="answer2" value-ref="user2"></entry> </map> </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(); {} {}