spring装配基本属性和集合类型

集合类型的装配
  前面学习的是如何注入依赖对象,还有基本类型,那么有些情况下呢我们还有可能要注入集合类型的对象,那么对于集合类型的这些对象我们该如何注入进去呢?好比我们要注入Set的集合,List的集合,或者Properties集合,或者Map集合,那么像这些集合我们该如何注入进去呢?

PersonService.java
Java代码
package cn.itcast.service;  
 
import java.util.List;  
import java.util.Map;  
import java.util.Properties;  
import java.util.Set;  
 
public interface PersonService {  
    public Set<String> getSets();  
 
    public List<String> getLists();  
 
    public Properties getProperties();  
 
    public Map<String, String> getMaps();  

package cn.itcast.service;

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

public interface PersonService {
 public Set<String> getSets();

 public List<String> getLists();

 public Properties getProperties();

 public Map<String, String> getMaps();
}

PersonServiceBean.java
Java代码
package cn.itcast.service.impl;  
 
import java.util.ArrayList;  
import java.util.HashMap;  
import java.util.HashSet;  
import java.util.List;  
import java.util.Map;  
import java.util.Properties;  
import java.util.Set;  
 
import cn.itcast.service.PersonService;  
 
public class PersonServiceBean implements PersonService {  
    private Set<String> sets = new HashSet<String>();  
    private List<String> lists = new ArrayList<String>();  
    private Properties properties = new Properties();  
    private Map<String, String> maps = new HashMap<String, String>();  
      
    public Map<String, String> getMaps() {  
        return maps;  
    }  
 
    public void setMaps(Map<String, String> maps) {  
        this.maps = maps;  
    }  
 
    public Properties getProperties() {  
        return properties;  
    }  
 
    public void setProperties(Properties properties) {  
        this.properties = properties;  
    }  
 
    public Set<String> getSets() {  
        return sets;  
    }  
 
    public void setSets(Set<String> sets) {  
        this.sets = sets;  
    }  
 
    public List<String> getLists() {  
        return lists;  
    }  
 
    public void setLists(List<String> lists) {  
        this.lists = lists;  
    }  
 
    public void save(){  
          
    }  

package cn.itcast.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import cn.itcast.service.PersonService;

public class PersonServiceBean implements PersonService {
 private Set<String> sets = new HashSet<String>();
 private List<String> lists = new ArrayList<String>();
 private Properties properties = new Properties();
 private Map<String, String> maps = new HashMap<String, String>();
 
 public Map<String, String> getMaps() {
  return maps;
 }

 public void setMaps(Map<String, String> maps) {
  this.maps = maps;
 }

 public Properties getProperties() {
  return properties;
 }

 public void setProperties(Properties properties) {
  this.properties = properties;
 }

 public Set<String> getSets() {
  return sets;
 }

 public void setSets(Set<String> sets) {
  this.sets = sets;
 }

 public List<String> getLists() {
  return lists;
 }

 public void setLists(List<String> lists) {
  this.lists = lists;
 }

 public void save(){
  
 }
}


beans.xml
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-2.5.xsd"> 
          <bean id="personService" class="cn.itcast.service.impl.PersonServiceBean"> 
            <property name="sets"> 
                <set> 
                    <value>第一个set元素</value> 
                    <value>第二个set元素</value> 
                    <value>第三个set元素</value> 
                </set> 
            </property> 
            <property name="lists"> 
                <list> 
                    <value>第一个list元素</value> 
                    <value>第二个list元素</value> 
                    <value>第三个list元素</value> 
                </list> 
            </property> 
            <property name="properties"> 
                <props> 
                    <prop key="key1">value1</prop> 
                    <prop key="key2">value2</prop> 
                    <prop key="key3">value3</prop> 
                </props> 
            </property> 
            <property name="maps"> 
                <map> 
                    <entry key="key-1" value="value-1"/> 
                    <entry key="key-2" value="value-2"/> 
                    <entry key="key-3" value="value-3"/> 
                </map> 
            </property> 
          </bean> 
</beans> 

<?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-2.5.xsd">
          <bean id="personService" class="cn.itcast.service.impl.PersonServiceBean">
           <property name="sets">
            <set>
             <value>第一个set元素</value>
             <value>第二个set元素</value>
             <value>第三个set元素</value>
            </set>
           </property>
           <property name="lists">
            <list>
             <value>第一个list元素</value>
             <value>第二个list元素</value>
             <value>第三个list元素</value>
            </list>
           </property>
           <property name="properties">
            <props>
             <prop key="key1">value1</prop>
             <prop key="key2">value2</prop>
             <prop key="key3">value3</prop>
            </props>
           </property>
           <property name="maps">
            <map>
             <entry key="key-1" value="value-1"/>
             <entry key="key-2" value="value-2"/>
             <entry key="key-3" value="value-3"/>
            </map>
           </property>
          </bean>
</beans>
SpringTest.java
Java代码
package junit.test;  
 
import org.junit.BeforeClass;  
import org.junit.Test;  
import org.springframework.context.support.AbstractApplicationContext;  
import org.springframework.context.support.ClassPathXmlApplicationContext;  
 
import cn.itcast.service.PersonService;  
 
public class SpringTest {  
 
    @BeforeClass 
    public static void setUpBeforeClass() throws Exception {  
    }  
 
    @Test public void instanceSpring(){  
        AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");  
        PersonService personService = (PersonService)ctx.getBean("personService");  
        System.out.println("========set===========");  
        for(String value : personService.getSets()){  
            System.out.println(value);  
        }  
        System.out.println("========list===========");  
        for(String value : personService.getLists()){  
            System.out.println(value);  
        }  
        System.out.println("========properties===========");  
        for(Object key : personService.getProperties().keySet()){  
            System.out.println(key+"="+ personService.getProperties().getProperty((String)key));  
        }  
        System.out.println("========map===========");  
        for(String key : personService.getMaps().keySet()){  
            System.out.println(key+"="+ personService.getMaps().get(key));  
        }  
        ctx.close();  
          
    }  

package junit.test;

import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.itcast.service.PersonService;

public class SpringTest {

 @BeforeClass
 public static void setUpBeforeClass() throws Exception {
 }

 @Test public void instanceSpring(){
  AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
  PersonService personService = (PersonService)ctx.getBean("personService");
  System.out.println("========set===========");
  for(String value : personService.getSets()){
   System.out.println(value);
  }
  System.out.println("========list===========");
  for(String value : personService.getLists()){
   System.out.println(value);
  }
  System.out.println("========properties===========");
  for(Object key : personService.getProperties().keySet()){
   System.out.println(key+"="+ personService.getProperties().getProperty((String)key));
  }
  System.out.println("========map===========");
  for(String key : personService.getMaps().keySet()){
   System.out.println(key+"="+ personService.getMaps().get(key));
  }
  ctx.close();
  
 }
}

运行单元测试代码,控制台输出:
========set===========
第一个set元素
第二个set元素
第三个set元素
========list===========
第一个list元素
第二个list元素
第三个list元素
========properties===========
key3=value3
key2=value2
key1=value1
========map===========
key-1=value-1
key-2=value-2
key-3=value-3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值