Spring中List、Set、Map、数组注入方式中标签的使用

在这里不多说,直接进入正题,在使用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

时间: 2024-10-14 21:00:22

Spring中List、Set、Map、数组注入方式中标签的使用的相关文章

struts中servletAPI获得Map类型的方式

(一)通过ActionContext 为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest.HttpSession和ServletContext进行了封装,构造了三个Map对象来替代这三种对象,在Action中,直接使用HttpServletRequest.HttpSession和ServletContext对应的Map对象来保存和读取 数据.可以通过com.opensymphony.xwork2.ActionConte

Spring《五》集合的注入方式

List.Set.Map.Properties 1.List <property name="msg"> <list> <value>gf</value> <value>gd</value> <value>HelloWorld</value> </list> </property> 2.Set <property name="msg">

【SSH系列】深入浅出spring IOC中三种依赖注入方式

spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入什么?控制什么?依赖注入和控制反转是一样的概念吗?接触新的知识,小编的脑袋中全是大大的问号,不过没有关系,今天这篇博文,小编主要来简单的介绍一下在spring IOC中依赖注入的方法. 依赖注入和控制反转,目的是为了使类与类之间解耦合,提高系统的可扩展性和可维护性.我们可以从以下几个方面理解: a.参与者都

Spring IOC 注入方式

依赖注入通常有如下两种方式: ①设值注入:IOC容器使用属性的Setter方法来注入被依赖的实例. 设值注入是指IOC容器使用属性的Setter方法来注入被依赖的实例.这种注入方式简单.直观,因而在Spring的依赖注入里大量使用. ②构造注入:IOC容器使用构造器来注入被依赖的实例. 构造注入在构造实例时,已经为其完成了依赖关系的初始化.这种利用构造器来设置依赖关系的方式,被称之为构造注入. Spring推荐面向接口编程,可以更好的让规范和实现分离,从而提供更好的解耦. 对于一个JAVAEE应

Spring学习之注入方式

我们知道,Spring对象属性的注入方式有两种:设值注入和构造注入. 假设有个类为People,该对象包含三个属性,name和school还有age,这些属性都有各自的setter和getter方法,还有一个包含这三个属性的构造方法.如果用spring来管理这个对象,那么有以下两种方式为People设置属性: (1)设值注入 1 <bean id="people" class="com.abc.People"> 2 <property name=&

Spring的三种注入方式

据说不懂spring的程序员就相当于不会Java,于是最近一段时间并行学习下spring框架.先学习总结下spring的IoC的五种注入方式. 这里我想象的场景是这样的:士兵和他的武器的故事.这个是我目前的结构图: Human和Weapon是两个接口,Gun和Solder分别是实现了上面两个接口的类,其中,由于Solder需要Gun而形成了对Gun类的依赖 上面的代码分别为: Weapon接口 public interface Weapon { public void function(); }

JS几种数组遍历方式以及性能分析对比

前言 这一篇与上一篇 JS几种变量交换方式以及性能分析对比 属于同一个系列,本文继续分析JS中几种常用的数组遍历方式以及各自的性能对比 起由 在上一次分析了JS几种常用变量交换方式以及各自性能后,觉得这种方式挺好的,于是抽取了核心逻辑,封装成了模板,打算拓展成一个系列,本文则是系列中的第二篇,JS数组遍历方式的分析对比 JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一

spring的事务管理有几种方式实现 (转自:http://blog.csdn.net/bopzhou/article/details/7094108)

spring的事务管理有几种方式实现 标签: springhibernate数据库beanlistclass 2011-12-22 09:12 3883人阅读 评论(0) 收藏 举报 Spring+Hibernate的实质: 就是把Hibernate用到的数据源Datasource,Hibernate的SessionFactory实例,事务管理器HibernateTransactionManager,都交给Spring管理. 那么再没整合之前Hibernate是如何实现事务管理的呢? 通过Ser

Java Spring学习笔记----Bean的依赖注入(1)

Spring常用的两种依赖注入方式:一种是设值注入方式,利用Bean的setter方法设置Bean的属性值:另一种是构造注入,通过给Bean的构造方法传递参数来实现Bean的属性赋值: 1.设值注入方式 直接上代码例子,示例的树结构图如下 Shape.java接口内容 package chapter3; public interface Shape { public double area();//求形状的面积 } Circle.java内容: package chapter3; public