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

Spring带有Map构造函数注入示例

点击下载
  1. 带有地图示例的构造函数注入

在此示例中, 我们使用地图作为具有已发布用户名答案的答案。在这里, 我们将键和值对都用作字符串。

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

Question.java

此类包含三个属性, 两个构造函数和用于显示信息的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;

public Question() {}
public Question(int id, String name, Map<String, String> answers) {
	super();
	this.id = id;
	this.name = name;
	this.answers = answers;
}

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">
<constructor-arg value="11"></constructor-arg>
<constructor-arg value="What is Java?"></constructor-arg>
<constructor-arg>
<map>
<entry key="Java is a Programming Language"  value="Ajay Kumar"></entry>
<entry key="Java is a Platform" value="John Smith"></entry>
<entry key="Java is an Island" value="Raj Kumar"></entry>
</map>
</constructor-arg>
</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开发)

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

赞(0)
未经允许不得转载:srcmini » Spring带有Map构造函数注入示例

评论 抢沙发

评论前必须登录!