在这里不多说,直接进入正题,在使用Spring时,如果对象实例含有数据或集合属性时,那我们该如何去配置Spring.xml呢?我们就需要property下的子元素list,set,map等子元素。示例为:
<bean> <property> <list>……</list> or <set>……</set> or <map>……</map> </property> </bean>
【转载使用,请注明出处:http://blog.csdn.net/mahoking】
操作步骤:
1、 创建Topic对象。
public class Topic { /**内容 必须提供 getter 与 setter 方法*/ public String context; public String getContext() { return context; } public void setContext(String context) { this.context = context; } /** * 有参的构造函数 ,可选 * @param context */ public Topic(String context) { this.context = context; } /** * 无参数的构造函数 , 必须提供一个无参的构造函数 */ public Topic() { }
2、 创建Speaker对象。
public class Speaker { private List<Topic> topicLists; private Set<Topic> topicSets; private Map<Integer, Topic> topicMaps; private Topic[] topics; private String[] topicStrings; /** * 演讲 */ public void teach() { System.out.println("====List===="); for(Topic topic:topicLists){ System.out.println(topic.getContext()); } System.out.println("====Set===="); for(Topic topic:topicSets){ System.out.println(topic.getContext()); } System.out.println("====Topic[]===="); for(Topic topic:topics){ System.out.println(topic.getContext()); } System.out.println("====Map===="); for(Entry<Integer, Topic> entry:topicMaps.entrySet()){ System.out.println(topicMaps.get(entry.getKey()).getContext()); } System.out.println(topicStrings[0]+"==="+topicStrings[1]); } /*Getter 和 Setter*/ public List<Topic> getTopicLists() { return topicLists; } public void setTopicLists(List<Topic> topicLists) { this.topicLists = topicLists; } public Set<Topic> getTopicSets() { return topicSets; } public void setTopicSets(Set<Topic> topicSets) { this.topicSets = topicSets; } public Map<Integer, Topic> getTopicMaps() { return topicMaps; } public void setTopicMaps(Map<Integer, Topic> topicMaps) { this.topicMaps = topicMaps; } public Topic[] getTopics() { return topics; } public void setTopics(Topic[] topics) { this.topics = topics; } public String[] getTopicStrings() { return topicStrings; } public void setTopicStrings(String[] topicStrings) { this.topicStrings = topicStrings; } }
3、创建Spring配置文件highLearn02.xml。
<?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.xsd"> <!-- Spring中数组,List,Map,Set注入方式 --> <bean id="highSpeaker02" class="com.mahaochen.spring.high.learn02.Speaker" scope="singleton" > <!-- List注入方式 --> <property name="topicLists"> <list> <ref bean="highTopic01" /> <ref bean="highTopic02" /> </list> </property> <!-- Set注入方式 --> <property name="topicSets"> <set> <ref bean="highTopic01" /> <ref bean="highTopic02" /> </set> </property> <!-- Map注入方式 --> <property name="topicMaps"> <map> <entry key="1"> <ref bean="highTopic01" /> </entry> <entry key="2"> <ref bean="highTopic02" /> </entry> </map> </property> <!-- 数组注入方式 --> <property name="topics"> <list> <ref bean="highTopic01" /> <ref bean="highTopic02" /> </list> </property> <property name="topicStrings"> <list> <value>Happy</value> <value>Smell</value> </list> </property> </bean> <bean id="highTopic01" class="com.mahaochen.spring.high.learn02.Topic"> <constructor-arg index="0" value="Left" /> </bean> <bean id="highTopic02" class="com.mahaochen.spring.high.learn02.Topic"> <constructor-arg index="0" value="Right" /> </bean> </beans>
4、将Spring配置文件highLearn02.xml引入到主配置文件beans.xml中。
<import resource="com/mahaochen/spring/learn03/beanLearn03.xml"/>
5、编写测试类TestSpringHigh02.java。
public class TestSpringHigh02 { // Spring中List、Set、Map、数组注入方式 public static void main(String[] args) { BeanFactory beanFactory = new ClassPathXmlApplicationContext("beans.xml"); Speaker speakerHigh02 = (Speaker) beanFactory.getBean("highSpeaker02"); speakerHigh02.teach(); } }
【转载使用,请注明出处:http://blog.csdn.net/mahoking】
Spring中List、Set、Map、数组注入方式中标签的使用
原文地址:http://blog.csdn.net/mahoking/article/details/42586999