我们都知道如何去注入普通属性的值,非常简单,那么我们如何去注入开发中常见的集合类型的属性了,别急,往下看。

这里将介绍如何给Map list set Array Properties 这些属性注入值。

1.创建一个类:员工类Employee

package cn.entity;

/**
 * 员工类
 *
 * @author hyj
 *
 */
public class Employee {
    //员工年龄
    private Integer age;
    //员工姓名
    private String name;

    public Employee() {
        super();
        // TODO Auto-generated constructor stub
    }

    public Employee(Integer age, String name) {
        super();
        this.age = age;
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

2.创建第二个类里面包含上面所包含的集合和数组

package cn.collection;

import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import cn.entity.Employee;

public class Collection {
    private String [] empName;//数组
    private List<Employee> empList;//list集合
    private Set<Employee> empsets;//set集合
    private Map<String,Employee> empMaps;//map集合
    private Properties pp;//Properties的使用
    public String[] getEmpName() {
        return empName;
    }
    public void setEmpName(String[] empName) {
        this.empName = empName;
    }
    public List<Employee> getEmpList() {
        return empList;
    }
    public void setEmpList(List<Employee> empList) {
        this.empList = empList;
    }
    public Set<Employee> getEmpsets() {
        return empsets;
    }
    public void setEmpsets(Set<Employee> empsets) {
        this.empsets = empsets;
    }
    public Map<String, Employee> getEmpMaps() {
        return empMaps;
    }
    public void setEmpMaps(Map<String, Employee> empMaps) {
        this.empMaps = empMaps;
    }
    public Properties getPp() {
        return pp;
    }
    public void setPp(Properties pp) {
        this.pp = pp;
    }

}

3.创建ApplicationContext.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"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

  <!-- 准备员工 -->
  <bean id="emp1" class="cn.entity.Employee">
      <property name="age" value="18"></property>
      <property name="name" value="张三"></property>
  </bean>
   <bean id="emp2" class="cn.entity.Employee">
      <property name="age" value="18"></property>
      <property name="name" value="李四"></property>
  </bean>

  <!-- Collection对象-->
  <bean id="collection" class="cn.collection.Collection">
      <!-- 给数组赋值 -->
      <property name="empName">
           <list>
             <value>张三</value>
             <value>李四</value>
             <value>王五</value>
           </list>
      </property>
      <!-- 给list集合赋值 -->
      <property name="empList">
         <list>
           <ref bean="emp1"/>
           <ref bean="emp2"/>
         </list>
      </property>
      <!-- 给set集合赋值 -->
      <property name="empsets">
         <set>
           <ref bean="emp1"/>
           <ref bean="emp2"/>

         </set>
      </property>
      <!-- 给Map集合赋值 -->
      <property name="empMaps">
         <map>
           <entry key="001" value-ref="emp1"></entry>
           <entry key="002" value-ref="emp2"></entry>
         </map>
      </property>
      <!-- 给Properties集合赋值 -->
      <property name="pp">
        <props>
            <prop key="110" >hello</prop>
            <prop key="120">Spring</prop>
        </props>
      </property>

  </bean>

</beans>

4.测试类:

package cn.test;

import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.collection.Collection;
import cn.entity.Employee;

public class TestHappy {

    /**
     * 给数组赋值
     */
    @Test
    public void setArray(){
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        Collection collection=(Collection)context.getBean("collection");
        for (String item : collection.getEmpName()) {
            System.out.println(item);
        }
    }
    /**
     * 给list集合赋值
     */
    @Test
    public void  setList(){
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        Collection collection=(Collection)context.getBean("collection");
        for (Employee item : collection.getEmpList()) {
            System.out.println("年龄:"+item.getAge()+"姓名:"+item.getName());
        }

    }

    /**
     * 给set集合赋值
     */
    @Test
    public void  setSet(){
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        Collection collection=(Collection)context.getBean("collection");

        for (Employee item : collection.getEmpsets()) {
            System.out.println("年龄:"+item.getAge()+"姓名:"+item.getName());
        }

    }

    /**
     * 给map集合赋值
     */
    @Test
    public  void setMap(){
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        Collection collection=(Collection)context.getBean("collection");
        Map<String, Employee> map=collection.getEmpMaps();
        Iterator<String> iterator=map.keySet().iterator();
        while (iterator.hasNext()) {
            Employee employee=map.get(iterator.next());
            System.out.println("年龄:"+employee.getAge()+"姓名:"+employee.getName());
        }
    }

    @Test
    /**
     * Properties集合
     */
    public void testSet(){
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        Collection collection=(Collection)context.getBean("collection");
        for(Entry<Object,Object> entry: collection.getPp().entrySet()){
            System.out.println(entry.getKey().toString()+" "+entry.getValue().toString());
        }

    }

}

Spring中集合类型属性注入的更多相关文章

  1. Spring中@value以及属性注入的学习

    1.简单的Java配置 配置文件(jdbc.properties) jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://1 ...

  2. 【坑】Spring中抽象父类属性注入,子类调用父类方法使用父类注入属性

    运行环境 idea 2017.1.1 spring 3.2.9.RELEASE 需求背景 需要实现一个功能,该功能有2个场景A.B,大同小异 抽象一个抽象基类Base,实现了基本相同的方法BaseMe ...

  3. Spring学习日记03_IOC_属性注入_集合类型属性

    Ioc操作Bean管理(xml注入集合属性) 注入数组类型属性 注入List集合类型属性 注入Map集合类型属性 Stu类 public class Stu { //1. 数组类型属性 private ...

  4. Spring、基本类型属性和集合类型属性的注入

    Spring 还可以对基本属性和集合类型属性进行注入: public interface PersonIService { public String getBaseProperty(); publi ...

  5. IoC容器-Bean管理XML方式(注入集合类型属性)

    Ico操作Bean管理(xml注入集合属性) 1,注入数组类型属性 2,注入List集合类型属性 3,注入Map集合类型属性 (1)创建类,定义数组.list.map.set类型属性,生成对应set方 ...

  6. 【Spring实战】—— 7 复杂集合类型的注入

    之前讲解了Spring的基本类型和bean引用的注入,接下来学习一下复杂集合类型的注入,例如:List.Set.Map等. 对于程序员来说,掌握多种语言是基本的技能. 我们这里做了一个小例子,程序员们 ...

  7. Spring 依赖注入(DI) 的三种方式 和 对集合类型的注入

    // 分别省略了getter setter public class Student { private String name; private int age; private Teacher t ...

  8. spring中bean配置和注入场景分析

    bean与spring容器的关系 Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载.实例化Bean,并 ...

  9. Hive中集合类型

    Hive中集合类型 创建表,集合是以 - 分割的 数据文件 加载数据 查询数据 查询数组中第一个字段 再建一个表,使用map 查看数据文件 加载数据 查询数据 查询键值 创建表,struct类型 查看 ...

随机推荐

  1. 洛谷P1372 又是毕业季I&&P1414 又是毕业季II[最大公约数]

    P1372 又是毕业季I 题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚 ...

  2. 第4章 文本编辑器vim

    1. vim常用操作 1.1 vim简介 (1)vim是一个功能强大的全屏幕文本编辑器,是Linux/Unix上最常用的文本编辑器,它的作用是建立.编辑.显示文本文件. (2)vim没有菜单,只有命令 ...

  3. python基础之循环结构以及列表

    python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...

  4. 分页ajax+springmvc的简单实现

    页面部分源码: <li class="paginItem"><a href="javascript:getNewsList(2);">2 ...

  5. HTML编写需要注意的事项

    HTML在编写过程中需要注意许多关键的事项,就如最近我在学习中遇到的问题如下: 代码规范问题: 在代码视图中编写代码,一定要规范的格式,不要把代码全部都写到一块,这样不仅影响效率,更加影响视觉,当出现 ...

  6. IoC 与 AOP (谈谈你对 Spring 的理解)

    一.Spring 实现了工厂模式的工厂类,这个类名为BeanFactory(实际上是一个接口),在程序中通常 BeanFactory 的子类 ApplicationContext. Spring相当于 ...

  7. Swift学习(二):自定义扩展方法(Extensions)

    扩展就是向一个已有的类.结构体或枚举类型添加新功能(functionality) 扩展可以 添加计算型属性和计算静态属性 定义实例方法和类型方法 提供新的构造器 定义下标 定义和使用新的嵌套类型 使一 ...

  8. 关于DOS与cmd(windows系统)

    dos是计算机的最初期的操作系统,对电脑操作必须输入各种dos命令窗口,可以理解成运行计算机机器内部语言,知道编程吗?其实早期dos命令操作系统就是运行计算机内部的编程命令,因此操作人员都必须具有一定 ...

  9. Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

    Caliburn.Micro学习笔记目录 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详 ...

  10. C#进阶系列——DDD领域驱动设计初探(五):AutoMapper使用

    前言:前篇搭建了下WCF的代码,就提到了DTO的概念,对于为什么要有这么一个DTO的对象,上章可能对于这点不太详尽,在此不厌其烦再来提提它的作用: 从安全上面考虑,领域Model都带有领域业务,让Cl ...