Setter Injection with Map Example in Spring

In this case, we are utilizing guide as the response for a question that have answer as the key and username as the worth. Here, we are utilizing key and worth pair both as a string. Like past samples, it is the case of gathering where one inquiry can have numerous answers.

Like previous examples, it is the example of forum where one question can have multiple answers.

Question.java

This class contains three properties, getters and setters and displayInfo() method to display the information.

package com.javatportal;
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<String,String> 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<String, String>> set=answers.entrySet();
	Iterator<Entry<String, String>> itr=set.iterator();
	while(itr.hasNext()){
		Entry<String,String> entry=itr.next();
		System.out.println("Answer:"+entry.getKey()+" Posted By:"+entry.getValue());
	}
}
}

applicationContext.xml

The entry attribute of map is used to define the key and value information.

<?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="q" class="com.javatportal.Question">
<property name="id" value="1"></property>
<property name="name" value="What is Java?"></property>
<property name="answers">
<map>
<entry key="Java is a programming language"  value="Mithilesh Kushwaha"></entry>
<entry key="Java is a Platform" value="Harish sharma"></entry>
</map>
</property>
</bean>

</beans>
Test.java

This class gets the bean from the applicationContext.xml file and calls the displayInfo() method.

package com.javatportal;

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