`
844604778
  • 浏览: 551224 次
文章分类
社区版块
存档分类
最新评论

Spring中给Bean注入集合

 
阅读更多

Spring中如果一个Bean里含有集合元素,需要给Bean里的集合元素注入元素时,可以采用如下方法,一个是构造器注入,一个是setter注入

JavaBean源代码:

import java.util.List;
import java.util.Map;
import java.util.Set;
//一个普通的JavaBean
public class Person {
	//人的名字
	private String name;
	//一个人可以唱N首歌,歌名不能重复
	private Set<String> set;
	//一个人几岁对应学生生涯的哪一个时期
	private Map<Integer,String> map;
	//一个人早中晚吃的饭(值可以重复)
	private List<String> meal;
	//getter方法
	public String getName() {
		return name;
	}
	//setter方法
	public void setName(String name) {
		this.name = name;
	}
	//getter方法
	public Set<String> getSet() {
		return set;
	}
	//setter方法
	public void setSet(Set<String> set) {
		this.set = set;
	}
	//getter方法
	public Map<Integer, String> getMap() {
		return map;
	}
	//setter方法
	public void setMap(Map<Integer, String> map) {
		this.map = map;
	}
	//getter方法
	public List<String> getMeal() {
		return meal;
	}
	//setter方法
	public void setMeal(List<String> meal) {
		this.meal = meal;
	}
	//一个构造函数
	public Person(String S_name, Set<String> set, Map<Integer, String> map,
			List<String> meal) {
		super();
		this.name = S_name;
		this.set = set;
		this.map = map;
		this.meal = meal;
	}
	//默认的构造函数
	public Person() {
		super();
	}
}

这个JavaBean里面有三个集合List、Set、Map,以下是Spring的配置文件

<?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="person" class="com.pp.Person">
	<!-- 给构造函数的第一个参数传值 -->
	<constructor-arg value="pptest"></constructor-arg>
	<!-- 给构造函数的第二个参数传值 -->
	<constructor-arg>
	<set>
		<value>我是中国人</value>
		<value>哈哈</value>
		<!-- 由于集合的特性,这个是加不进去的 -->
		<value>哈哈</value>
	</set>
	</constructor-arg>
	<!-- 给构造函数的第三个参数传值  -->
	<constructor-arg>
	<map>
		<entry key="5" value="小学"></entry>
		<entry key="11" value="初中"></entry>
		<entry key="14" value="高中"></entry>
		<entry key="17" value="大学"></entry>
	</map>
	</constructor-arg>
	<!-- 给构造函数的第四个传数传参 -->
	<constructor-arg>
	<list>
		<value>粥</value>
		<value>粥</value>
		<value>粥</value>
	</list>
	</constructor-arg>
	</bean>
</beans>

这个配置文件采用的是构造函数的方式进行注入的,能够让程序工作起来,下面是另一配置文件采用的是setter方法注入,同样也可以让程序跑起来。

<?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="person" class="com.pp.Person">
	<!-- 通过setter方法向Name元素设置值 -->
	<property name="Name" value="ppTest"></property>
	<!-- 通过setter方法向Set集合填加元素 -->
	<property name="Set">
	<set>
		<value>我是中国人</value>
		<value>哈哈</value>
		<!-- 这个是加不去的,由Set的特性来决定的 -->
		<value>哈哈</value>
	</set>
	</property>
	<!-- 通过setter方法向Map集合填加元素 -->
	<property name="Map">
	<map>
		<entry key="5" value="小学"></entry>
		<entry key="11" value="初中"></entry>
		<entry key="17" value="大学"></entry>
	</map>
	</property>
	<!-- 通过setter方法向list集合填加元素 -->
	<property name="Meal">
	<list>
		<value>粥</value>
		<value>粥</value>
		<value>粥</value>
	</list>
	</property>
	</bean>
</beans>

如果想给一个属性装配一个空值,采用如下方式即可

<null/>

分享到:
评论

相关推荐

    通过@Autowired注解注入bean的顺序,以及@bean注入.rar

    通过@Bean 和spring的factoryBean注入的bean. 以及对应@service注解注入的类 通过@Autowired 注入对象的时间是现根据类型在根据beanName获取的案例集合

    装配bean—集合类型注入值源码

    装配bean——集合类型注入值: 本文介绍数组、list集合、set集合、map集合、properties的注值 博客原文地址:http://blog.csdn.net/tingzhiyi/article/details/52104203

    详解Java的Spring框架中bean的注入集合

    主要介绍了详解Java的Spring框架中bean的注入集合,Spring是Java的SSH三大web开发框架之一,需要的朋友可以参考下

    day38 14-Spring的Bean的属性的注入:集合属性的注入

    NULL 博文链接:https://364232252.iteye.com/blog/2369771

    spring学习笔记(有代码有注解解释)

    给 bean 注入集合;scope 作用域;Spring 的继承;Spring 的依赖;Spring 的 p 命名空间;Spring 的工厂方法;IoC 自动装载(Autowire);AOP以及如何使用; 适用人群:比较适合与我一样的在校普通大学生进行学习...

    Spring相关测试1

    Spring环境搭建、Spring中Bean的配置(Bean注入的2种方式,注入细节(字面值、引用其他bean、内部bean、集合属性、util scheme 定义集合、p命名空间))

    spring2.5学习PPT 传智博客

    07_编码剖析Spring依赖注入的原理 08_编码剖析Spring装配基本属性的原理 09_Spring如何装配各种集合类型的属性 10_使用构造器装配属性 11_用@Resource注解完成属性装配 12_编码剖析@Resource注解的实现原理 ...

    Spring面试题含答案.pdf

    30. 在 Spring 中如何注入一个 java 集合? 31. 什么是 bean 装配? 32. 什么是 bean 的自动装配? 33. 解释不同方式的自动装配 34.自动装配有哪些局限性? 35. 你可以在 Spring 中注入一个 null 和一个空字符串吗?...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...

    spring4示例代码

    spring-1 演示了使用setter方式及构造器方式创建bean,util:list标签创建集合,p标签简化配置 和依赖注入, 以及bean的autowire和继承与依赖,以及bean的作用域。 spring-2 演示了外部配置文件的引入(connection)...

    spring杂谈 作者zhang KaiTao

    1. spring杂谈[原创] 1.1 Spring事务处理时自我调用的解决方案及一些实现方式的风险 1.2 我对AOP的理解 1.3 Spring开闭原则的表现-BeanPostProcessor的扩展点-1 1.4 我对IoC/DI的理解 ...1.33 Spring 注入集合类型

    spring2.5教程(传智)

    01_全面阐释Spring及其各项功能 02_搭建与测试Spring的开发环境 03_编码剖析Spring管理Bean的原理 04_Spring的三种实例化Bean的方式 05_配置Spring管理的bean的作用域 ...09_Spring如何装配各种集合类

    Springboot、SpringCloud开发脚手架,集合各种常用框架使用案例.zip

    SpringBoot采用 JavaConfig的方式对Spring进行配置,并且提供了大量的注解,极大的提高了工作效率,比如@Configuration和@bean注解结合,基于@Configuration完成类扫描,基于@bean注解把返回值注入IOC容器。...

    Spring in Action(第二版 中文高清版).part2

    3.3 注入非Spring Bean 3.4 注册自定义属性编辑器 3.5 使用Spring的特殊Bean 3.5.1 后处理Bean 3.5.2 Bean工厂的后处理 3.5.3 配置属性的外在化 3.5.4 提取文本消息 3.5.5 程序事件的解耦 3.5.6 让Bean了解...

    Spring in Action(第二版 中文高清版).part1

    3.3 注入非Spring Bean 3.4 注册自定义属性编辑器 3.5 使用Spring的特殊Bean 3.5.1 后处理Bean 3.5.2 Bean工厂的后处理 3.5.3 配置属性的外在化 3.5.4 提取文本消息 3.5.5 程序事件的解耦 3.5.6 让Bean了解...

    Spring攻略(第二版 中文高清版).part1

    4.2 将Spring Bean注入脚本中 157 4.2.1 问题 157 4.2.2 解决方案 157 4.2.3 工作原理 157 4.3 从脚本中刷新Bean 160 4.3.1 问题 160 4.3.2 解决方案 160 4.3.3 工作原理 160 4.4 定义内联脚本源码...

    spring.doc

    拓展spring为类中的属性赋值: 40 小结: 47 面向接口编程: 47 4 面向切面编程 52 4.1 代理模式 52 代理模式拓展: 52 4.1.1 JDK动态代理 58 JDK动态代理拓展: 59 4.1.2 CGLIB做代理 66 CGLIB动态代理拓展: 68 ...

    Spring in Action(第2版)中文版

    16.4.3在jsf页面中使用springbean 16.4.4在jsf中暴露应用程序环境 16.5spring中带有dwr的支持ajax的应用程序 16.5.1直接web远程控制 16.5.2访问spring管理的beandwr 16.6小结 附录a装配spring a.1下载spring ...

    Spring攻略(第二版 中文高清版).part2

    4.2 将Spring Bean注入脚本中 157 4.2.1 问题 157 4.2.2 解决方案 157 4.2.3 工作原理 157 4.3 从脚本中刷新Bean 160 4.3.1 问题 160 4.3.2 解决方案 160 4.3.3 工作原理 160 4.4 定义内联脚本源码...

Global site tag (gtag.js) - Google Analytics