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();
    
{}
{}