注入集合

你已经看到了如何使用 value 属性来配置基本数据类型和在你的 bean 配置文件中使用标签的 ref属性来配置对象引用。这两种情况下处理奇异值传递给一个 bean。

现在如果你想传递多个值,如 Java Collection 类型 List、Set、Map 和 Properties,应该怎么做呢。为了处理这种情况,Spring 提供了四种类型的集合的配置元素,如下所示:

你可以使用或来连接任何 java.util.Collection 的实现或数组。

你会遇到两种情况(a)传递集合中直接的值(b)传递一个 bean 的引用作为集合的元素。

例子

我们在适当的位置使用 Eclipse IDE,然后按照下面的步骤来创建一个 Spring 应用程序:

这里是 JavaCollection.java 文件的内容:

package com.tutorialspoint;import java.util.*;public class JavaCollection { List addressList; Set addressSet; Map addressMap; Properties addressProp; // a setter method to set List public void setAddressList(List addressList) { this.addressList = addressList; } // prints and returns all the elements of the list. public List getAddressList() { System.out.println("List Elements :" + addressList); return addressList; } // a setter method to set Set public void setAddressSet(Set addressSet) { this.addressSet = addressSet; } // prints and returns all the elements of the Set. public Set getAddressSet() { System.out.println("Set Elements :" + addressSet); return addressSet; } // a setter method to set Map public void setAddressMap(Map addressMap) { this.addressMap = addressMap; }  // prints and returns all the elements of the Map. public Map getAddressMap() { System.out.println("Map Elements :" + addressMap); return addressMap; } // a setter method to set Property public void setAddressProp(Properties addressProp) { this.addressProp = addressProp; }  // prints and returns all the elements of the Property. public Properties getAddressProp() { System.out.println("Property Elements :" + addressProp); return addressProp; }}

下面是 MainApp.java 文件的内容:

package com.tutorialspoint;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainApp { public static void main(String[] args) { ApplicationContext context =  new ClassPathXmlApplicationContext("Beans.xml"); JavaCollection jc=(JavaCollection)context.getBean("javaCollection"); jc.getAddressList(); jc.getAddressSet(); jc.getAddressMap(); jc.getAddressProp(); }}

下面是配置所有类型的集合的配置文件 Beans.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>INDIAPakistanUSAUSAINDIAPakistanUSAUSAINDIAPakistanUSAUSA

一旦你创建源代码和 bean 配置文件完成后,我们就可以运行该应用程序。你应该注意这里不需要配置文件。如果你的应用程序一切都正常,将输出以下信息:

List Elements :[INDIA, Pakistan, USA, USA]Set Elements :[INDIA, Pakistan, USA]Map Elements :{1=INDIA, 2=Pakistan, 3=USA, 4=USA}Property Elements :{two=Pakistan, one=INDIA, three=USA, four=USA}

注入 Bean 引用

下面的 Bean 定义将帮助你理解如何注入 bean 的引用作为集合的元素。甚至你可以将引用和值混合在一起,如下所示:

<?xml version="1.0" encoding="UTF-8"?>PakistanPakistan

为了使用上面的 bean 定义,你需要定义 setter 方法,它们应该也能够是用这种方式来处理引用。

注入 null 和空字符串的值

如果你需要传递一个空字符串作为值,那么你可以传递它,如下所示:

前面的例子相当于 Java 代码:exampleBean.setEmail("")。

如果你需要传递一个 NULL 值,那么你可以传递它,如下所示:

前面的例子相当于 Java 代码:exampleBean.setEmail(null)。

通过set方式注入的bean为null_Spring 注入集合相关推荐

  1. spring项目属性注入和bean管理xml 注入一般属性和集合属性

    IOC 介绍: 在Spring的应用中,Spring IoC容器可以创建.装配和配置应用组件对象,这里的组件对象称为Bean. Bean的实例化 在面向对象编程中,想使用某个对象时,需要事先实例化该对 ...

  2. Spring的Bean属性依赖注入

    属性依赖注入的三种方式 什么是Bean属性的注入?就是对一个对象的属性赋值.有三种方式: 第一种:构造器参数注入 第二种:setter方法属性注入(setter方法的规范需要符合JavaBean规范) ...

  3. Bean的依赖注入的数据类型

    上面的操作,都是注入的引用Bean,处了对象的引用可以注入,普通数据类型,集合等都可以在容器中进行注入. 注入数据的三种数据类型 普通数据类型 引用数据类型 集合数据类型 其中引用数据类型,此处就不再 ...

  4. IOC操作Bean管理XML方式(注入内部 bean 和 级联赋值)

    目录 1.注入属性-内部 bean (1)一对多关系:部门和员工 (2)在实体类之间表示一对多关系 (3)在Spring 配置文件中进行配置 2.注入属性-级联赋值 (1)第一种写法类似外部bean注 ...

  5. Spring中bean属性注入方式总结:构造方法、setter注入、p命令空间注入、SpEL注入、集合注入

    1. 构造方法注入 constructor-arg用于配置构造方法一个参数 name :参数的名称 value:设置普通数据 ref:引用数据,一般是另一个bean id值 index :参数的索引号 ...

  6. Spring核心——Bean的依赖注入

    依赖注入 在设计模式与IoC这篇文章中,介绍了Spring基础的三大支柱的两项内容--IoC.Bean.本篇将继续围绕着Bean的创建时的注入方式来介绍Spring的核心思想与设计模式. 天底下所有面 ...

  7. Spring bean依赖注入、bean的装配及相关注解

    依赖注入 Spring主要提供以下两种方法用于依赖注入 基于属性Setter方法注入 基于构造方法注入 Setter方法注入 例子: public class Communication {priva ...

  8. spring中的依赖注入——构造函数注入、set方法注入( 更常用的方式)、复杂类型的注入/集合类型的注入

    spring中的依赖注入 依赖注入: Dependency Injection IOC的作用:降低程序间的耦合(依赖关系) 依赖关系的管理:以后都交给spring来维护.在当前类需要用到其他类的对象, ...

  9. SpringBoot基础篇Bean之条件注入之注解使用

    bean的条件注入,除了前面一篇博文中介绍的通过@Conditional注解配合Condition接口的实现之外,还提供了更多简化的注解使用方式,省略了自己实现Condtion接口,本篇博文主要介绍下 ...

最新文章

  1. Spring Boot 整合 Elastricsearch + LogStash + Kibana
  2. python cmdb资产_SuperCMDB - 资产管理+跳板审计
  3. 中国人民大学文继荣:搜索,从相关性到有用性
  4. 大数据时代云计算在新媒体平台的应用研究
  5. Linux目录结构FHS
  6. mysql连接报错Access denied for user ‘root‘@‘localhost‘
  7. Unity 2017 Game Optimization 读书笔记 Dynamic Graphics (6)
  8. 那些年,乘风破浪的科学家们
  9. cgi web页面传入命令
  10. 使用PowerDesinger 正向工程
  11. mfc简易的学生管理系统
  12. 64位计算机可以安装xp,64位xp系统如何安装【图解】
  13. 一步到位,直播系统源代码搭建直播推流服务器
  14. 利用R语言进行主成分分析的步骤
  15. python处理excel数据
  16. ios 旋转屏幕试图切换_iOS播放器横竖屏切换的实现
  17. java语言如何将小写字母转化为大写_java中如何把大写字母转换成小写字母,小写字母转换成大写字母...
  18. 35岁的程序员何去何从?--记PMP考试感悟
  19. java代理模式教你中间商赚差价
  20. python安装完了还要安装什么-主角在异界开店的小说

热门文章

  1. matlab ones函数_Matlab中相见恨晚的命令(持续更新)
  2. linux检查swap配置,Linux环境下swap配置方法
  3. Flask唯一URL规则--@app.route('/', endpoint='1')
  4. python字符串是什么_python字符串详解
  5. 随笔分类 - HALCON学习例程中文详解
  6. C++成员函数重载、覆盖和隐藏的区别
  7. C++ Vector 使用心得
  8. iOS 抓包工具 charles工具
  9. iphone无线充电充电测试软件,瞎折腾星人的测评 篇一:想体验iPhone的无线充电?这可能是最具性价比的选择了!...
  10. platform驱动开发套路、DM9000的一些分析