zoukankan      html  css  js  c++  java
  • Spring点滴八:Spring注入集合

           在Spring中我们通过value属性来配置基本数据类型,通过标签的ref属性来配置对象的引用。这两种情况只能给bean传递一个值,那么如何传递多个值呢?Spring提供了四种Collection类型集合配置元素。

    元素 描述
    <List> 它有助于连线,如注入一列值,允许重复
    <set> 它有助于连线一组值,但不能重复
    <map> 它可以用来注入名称-值对的集合,其中名称和值可以是任何类型
    <props> 它可以用来注入名称-值对的集合,其中名称和值都是字符串类型

     Spring.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="collection" class="com.test.spring.Collection">
           <property name="list">
               <list>
                  <value>张三</value>
                  <value>李四</value>
                  <value>王五</value>
               </list>
           </property>
           <property name="set">
               <set>
               <value>张三</value>
               <value>李四</value>
               <value>王五</value>
               </set>
           </property>
           <property name="map">
             <map>
                <entry key="1" value="张三"></entry>
                <entry key="2" value="李四"></entry>
                <entry key="3" value="王五"></entry>
             </map>
           </property>
           <property name="proper">
              <props>
                  <prop key="1">张三</prop>
                  <prop key="2">李四</prop>    
                  <prop key="3">王五</prop>             
              </props>
           </property>
        </bean>
    </beans>

    Java代码:

    package com.test.spring;
    
    import java.util.List;
    import java.util.Map;
    import java.util.Properties;
    import java.util.Set;
    
    public class Collection {
        private List list;
        private Set set;
        private Map map;
        private Properties proper;
    
        public Properties getProper() {
            return proper;
        }
    
        public void setProper(Properties proper) {
            this.proper = proper;
        }
    
        public List getList() {
            return list;
        }
    
        public void setList(List list) {
            this.list = list;
        }
    
        public Set getSet() {
            return set;
        }
    
        public void setSet(Set set) {
            this.set = set;
        }
    
        public Map getMap() {
            return map;
        }
    
        public void setMap(Map map) {
            this.map = map;
        }
    }

    测试:

    package com.test.spring;
    
    import org.junit.Before;
    import org.junit.Test;
    import org.springframework.context.support.AbstractApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class T {
        AbstractApplicationContext applicationcontext=null;
        @Before
        public void before() {
            System.out.println("》》》Spring ApplicationContext容器开始初始化了......");
            applicationcontext= new ClassPathXmlApplicationContext(new String[]{"test1-service.xml"});
            System.out.println("》》》Spring ApplicationContext容器初始化完毕了......");
        }
        @Test
        public void  test() {
            collection=applicationcontext.getBean(Collection.class);
            System.out.println(collection.getList());
            System.out.println(collection.getSet());
            System.out.println(collection.getMap());
            System.out.println(collection.getProper());
        }
    }

    测试结果:

    》》》Spring ApplicationContext容器开始初始化了......
    2017-03-19 15:49:39  INFO:ClassPathXmlApplicationContext-Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5facc36f: startup date [Sun Mar 19 15:49:39 CST 2017]; root of context hierarchy
    2017-03-19 15:49:40  INFO:XmlBeanDefinitionReader-Loading XML bean definitions from class path resource [test1-service.xml]
    》》》Spring ApplicationContext容器初始化完毕了......
    [张三, 李四, 王五]
    [张三, 李四, 王五]
    {1=张三, 2=李四, 3=王五}
    {3=王五, 2=李四, 1=张三}

  • 相关阅读:
    setoptsocket函数
    C++右值引用
    const char* char const* char*const
    select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
    gitee搭建应用
    C++ 实现基本运算+-*/
    C++学习笔记(一)mutable function
    创造型设计模式-----抽象工厂模式
    openPhase gcc迁移
    SQLPLUS 远程连接数据库
  • 原文地址:https://www.cnblogs.com/sishang/p/6580740.html
Copyright © 2011-2022 走看看