English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans cet exemple, nous utilisons map comme réponse avec Answer et User. Ici, nous utilisons les paires clé-valeur comme objets. L'answer a ses propres informations, par exemple answerId, answer et postedDate, l'utilisateur a ses propres informations, par exemple userId, le nom d'utilisateur, emailId.
Comme dans l'exemple précédent, c'est un exemple de forum, l'un des Une question peut avoir plusieurs réponses。
Question.java
Cette classe contient trois attributs, à savoir les méthodes getters et setters et la méthode displayInfo() utilisées pour afficher les informations
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+"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
l'entrée l'élément de key-ref et value-ref L'attribut est utilisé pour définir les références de bean dans la carte.
<?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 is a Programming Language"></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 is a Platform"></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="What is 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
Cette classe récupère le Bean à partir du fichier applicationContext.xml et appelle la méthode displayInfo() pour afficher les informations.
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(); } }