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/>

Spring中给Bean注入集合的更多相关文章

  1. spring扩展点之二:spring中关于bean初始化、销毁等使用汇总,ApplicationContextAware将ApplicationContext注入

    <spring扩展点之二:spring中关于bean初始化.销毁等使用汇总,ApplicationContextAware将ApplicationContext注入> <spring ...

  2. Spring学习(三)——Spring中的依赖注入的方式

    [前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring.不知 ...

  3. 第2章 Spring中的Bean

    2.1 Bean的配置 Bean本质是Java中的类.Spring可以被看做一个大型工厂,这个工厂的作用就是生产和管理Spring容器zho中的Bean.想在项目中使用这个工厂,就需要对Spring的 ...

  4. 【Spring】Spring中的Bean - 5、Bean的装配方式(XML、注解(Annotation)、自动装配)

    Bean的装配方式 简单记录-Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)-Spring中的Bean 文章目录 Bean的装配方式 基于XML的装配 基于注解 ...

  5. JavaEE开发之Spring中的依赖注入与AOP

    上篇博客我们系统的聊了<JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建>,并在之前的博客中我们聊了依赖注入的相关东西,并且使用Objective-C的R ...

  6. JavaEE开发之Spring中的依赖注入与AOP编程

    上篇博客我们系统的聊了<JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建>,并在之前的博客中我们聊了依赖注入的相关东西,并且使用Objective-C的R ...

  7. 传统javabean与spring中的bean的区别

    javabean已经没人用了 springbean可以说是javabean的发展, 但已经完全不是一回事儿了 用处不同:传统javabean更多地作为值传递参数,而spring中的bean用处几乎无处 ...

  8. 1.2(Spring学习笔记)Spring中的Bean

    一.<Bean>的属性及子元素 在1.1中我们对<Bean>有了初步的认识,了解了一些基本用法. 现在我们进一步理解<Bean>属性及子元素. 我们先来看下< ...

  9. Spring 中的bean 是线程安全的吗?

    结论: 不是线程安全的 Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体sco ...

随机推荐

  1. FilterDispatcher 的作用(struts2.1.3以前,新版本改了)

    org.apache.struts2.dispatcher.FilterDispatcher是Struts2的主要的Filter,负责四个方面的功能: (1)执行Actions (2)清除Action ...

  2. Java基础知识强化43:StringBuffer类之StringBuffer和String的相互转化

    1. String和StringBuffer的相互转换 思想是:A-----B的转换,我们把A转换为B,其实是为了使用B的功能:B-----A的转换,我们可能的结果是A类型,所以还要转换回来 2. 案 ...

  3. 通知 Notification 详解

    效果 通知栏-刚收到通知时 通知栏-收到通知几秒后 标准视图 大视图-下滑前是标准视图 大视图-下滑后显示大视图 自定义通知 讲解 Notification,俗称通知,是一种具有全局效果的通知,它展示 ...

  4. 网页JavaScript2

    window.close()     关闭网页, window.opener.close()    关闭打开当前窗口的源窗口 间隔与延迟 window.setlnterval("执行代码&q ...

  5. Ajax七层模型用途

    Ajax七层模型 OSI七层模型满足所有网格模型 1.物理层:符合标准: 2.数据链路层:如网卡.水晶头.连接网络层等: 3.网络层:路由器(数据外围打IP地址): 4.传输层:两台计算器端口的连接: ...

  6. NHibernate——基本映射(5)

    一.映射定义概括 1.1 映射定义(Mapping declaration) 对象和关系数据库之间的映射是用一个XML文档(XML document)来定义的.这个映射文档被设计为易读的,并且可以手工 ...

  7. AngularJs练习Demo14自定义服务

    @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...

  8. oracle获得每周,每月,每季度,每年的第一天

    当前年月日 SELECT trunc(sysdate) , trunc(sysdate,'dd') FROM dual   当年第一天 SELECT trunc(sysdate,'yyyy') FRO ...

  9. jQuery选择器全解

    本篇介绍jQuery的选择器,jQuery选择器按照功能上分为"选择"和"过滤",并且是配合使用的.过滤的主要作用是从前面选定的选择器中选择的内容重进行筛选. ...

  10. mongodb一个关键字对多个字段同时查询,mongodb $or $and查询

    $query = '{ "$and": [                 {"$or": [{"reported": {"$ex ...