通过set方式注入的bean为null_Spring 注入集合
注入集合
你已经看到了如何使用 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 注入集合相关推荐
- spring项目属性注入和bean管理xml 注入一般属性和集合属性
IOC 介绍: 在Spring的应用中,Spring IoC容器可以创建.装配和配置应用组件对象,这里的组件对象称为Bean. Bean的实例化 在面向对象编程中,想使用某个对象时,需要事先实例化该对 ...
- Spring的Bean属性依赖注入
属性依赖注入的三种方式 什么是Bean属性的注入?就是对一个对象的属性赋值.有三种方式: 第一种:构造器参数注入 第二种:setter方法属性注入(setter方法的规范需要符合JavaBean规范) ...
- Bean的依赖注入的数据类型
上面的操作,都是注入的引用Bean,处了对象的引用可以注入,普通数据类型,集合等都可以在容器中进行注入. 注入数据的三种数据类型 普通数据类型 引用数据类型 集合数据类型 其中引用数据类型,此处就不再 ...
- IOC操作Bean管理XML方式(注入内部 bean 和 级联赋值)
目录 1.注入属性-内部 bean (1)一对多关系:部门和员工 (2)在实体类之间表示一对多关系 (3)在Spring 配置文件中进行配置 2.注入属性-级联赋值 (1)第一种写法类似外部bean注 ...
- Spring中bean属性注入方式总结:构造方法、setter注入、p命令空间注入、SpEL注入、集合注入
1. 构造方法注入 constructor-arg用于配置构造方法一个参数 name :参数的名称 value:设置普通数据 ref:引用数据,一般是另一个bean id值 index :参数的索引号 ...
- Spring核心——Bean的依赖注入
依赖注入 在设计模式与IoC这篇文章中,介绍了Spring基础的三大支柱的两项内容--IoC.Bean.本篇将继续围绕着Bean的创建时的注入方式来介绍Spring的核心思想与设计模式. 天底下所有面 ...
- Spring bean依赖注入、bean的装配及相关注解
依赖注入 Spring主要提供以下两种方法用于依赖注入 基于属性Setter方法注入 基于构造方法注入 Setter方法注入 例子: public class Communication {priva ...
- spring中的依赖注入——构造函数注入、set方法注入( 更常用的方式)、复杂类型的注入/集合类型的注入
spring中的依赖注入 依赖注入: Dependency Injection IOC的作用:降低程序间的耦合(依赖关系) 依赖关系的管理:以后都交给spring来维护.在当前类需要用到其他类的对象, ...
- SpringBoot基础篇Bean之条件注入之注解使用
bean的条件注入,除了前面一篇博文中介绍的通过@Conditional注解配合Condition接口的实现之外,还提供了更多简化的注解使用方式,省略了自己实现Condtion接口,本篇博文主要介绍下 ...
最新文章
- Spring Boot 整合 Elastricsearch + LogStash + Kibana
- python cmdb资产_SuperCMDB - 资产管理+跳板审计
- 中国人民大学文继荣:搜索,从相关性到有用性
- 大数据时代云计算在新媒体平台的应用研究
- Linux目录结构FHS
- mysql连接报错Access denied for user ‘root‘@‘localhost‘
- Unity 2017 Game Optimization 读书笔记 Dynamic Graphics (6)
- 那些年,乘风破浪的科学家们
- cgi web页面传入命令
- 使用PowerDesinger 正向工程
- mfc简易的学生管理系统
- 64位计算机可以安装xp,64位xp系统如何安装【图解】
- 一步到位,直播系统源代码搭建直播推流服务器
- 利用R语言进行主成分分析的步骤
- python处理excel数据
- ios 旋转屏幕试图切换_iOS播放器横竖屏切换的实现
- java语言如何将小写字母转化为大写_java中如何把大写字母转换成小写字母,小写字母转换成大写字母...
- 35岁的程序员何去何从?--记PMP考试感悟
- java代理模式教你中间商赚差价
- python安装完了还要安装什么-主角在异界开店的小说
热门文章
- matlab ones函数_Matlab中相见恨晚的命令(持续更新)
- linux检查swap配置,Linux环境下swap配置方法
- Flask唯一URL规则--@app.route('/', endpoint='1')
- python字符串是什么_python字符串详解
- 随笔分类 - HALCON学习例程中文详解
- C++成员函数重载、覆盖和隐藏的区别
- C++ Vector 使用心得
- iOS 抓包工具 charles工具
- iphone无线充电充电测试软件,瞎折腾星人的测评 篇一:想体验iPhone的无线充电?这可能是最具性价比的选择了!...
- platform驱动开发套路、DM9000的一些分析