个性化阅读
专注于IT技术分析

Spring带有Map的Setter进行注入示例

  1. 带有地图示例的Setter注入

在此示例中, 我们使用map作为一个问题的答案, 该问题的答案为键, 而用户名为值。在这里, 我们将键和值对都用作字符串。

像前面的示例一样, 它是论坛的示例, 其中一个问题可以有多个答案。

Question.java

此类包含三个属性, 即getters&setters和displayInfo()方法以显示信息。

package com.srcmini;
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

map的entry属性用于定义键和值信息。

<?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.srcmini.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="Sonoo Jaiswal"></entry>
<entry key="Java is a Platform" value="Sachin Yadav"></entry>
</map>
</property>
</bean>

</beans>

Test.java

此类从applicationContext.xml文件获取Bean, 然后调用displayInfo()方法。

package com.srcmini;

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

下载此示例(使用MyEclipse IDE开发)

赞(0)
未经允许不得转载:srcmini » Spring带有Map的Setter进行注入示例

评论 抢沙发

评论前必须登录!