现在的位置: 首页 > 综合 > 正文

快速上手Spring–8. 集合对象注入

2013年02月14日 ⁄ 综合 ⁄ 共 3377字 ⁄ 字号 评论关闭
   这篇文章来谈谈《Spring Framework 开发参考手册》的3.3.2小节中的集合对象注入。

 
   在项目开发中,还是经常会用到集合对象注入的,不过感觉没有多少需要介绍的,这次就只给出实例了。
 

· 先建立一个包:javamxj.spring.basic.collections ,然后把以下4个文件放在这个包下。
Hello.java
package javamxj.spring.basic.collections;

public class Hello {
    public String toString() {
        return "这是一个bean";
    }
}

 

CollectionInjection.java

package javamxj.spring.basic.collections;

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

public class CollectionInjection {
    private Map someMap;

    private Properties someProps;

    private Set someSet;

    private List someList;

    public void setSomeProps(Properties someProps) {
        this.someProps = someProps;
    }

    public void setSomeList(List someList) {
        this.someList = someList;
    }

    public void setSomeMap(Map someMap) {
        this.someMap = someMap;
    }

    public void setSomeSet(Set someSet) {
        this.someSet = someSet;
    }

    public void displayInfo() {

        System.out.println("Map contents:");
        for (Object key : someMap.keySet()) {
            System.out.println("Key: " + key + " - Value: " + someMap.get(key));
        }

        System.out.println("/nProperties contents:");
        for (Object key : someProps.keySet()) {
            System.out.println("Key: " + key + " - Value: "
                    + someProps.get(key));
        }

        System.out.println("/nSet contents:");
        for (Object i : someSet) {
            System.out.println("Value: " + i);
        }

        System.out.println("/nList contents:");
        for (Object i : someList) {
            System.out.println("Value: " + i);
        }

    }

 

beans.xml

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
   
    <bean id="hello" class="javamxj.spring.basic.collections.Hello"/>   

    <bean id="injectCollection"
        class="javamxj.spring.basic.collections.CollectionInjection">
        <property name="someMap">
            <map>
                <entry key="someValue" value="Hello javamxj!"/>
                <entry key="someBean">
                    <ref local="hello"/>
                </entry>
            </map>
        </property>
       
        <property name="someProps">
            <props>
                <prop key=""></prop>
                <prop key="">小小</prop>
            </props>
        </property>
       
        <property name="someSet">
            <set>
                <value>Hello World!</value>
                <ref local="hello"/>
            </set>
        </property>
       
        <property name="someList">
            <list>
                <value>Hello World!</value>
                <ref local="hello"/>
            </list>
        </property>
       
    </bean>
</beans> 

 

 
Main.java
package javamxj.spring.basic.collections;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

public class Main {
    public static void main(String[] args) {
        BeanFactory bf= new XmlBeanFactory(new ClassPathResource(
        "javamxj/spring/basic/collections/beans.xml"));

        CollectionInjection c = (CollectionInjection)bf.getBean("injectCollection");
        c.displayInfo();
    }
}

 
 
 
·运行Main.java,输出结果如下:
 

Map contents:
Key: someValue - Value: Hello javamxj!
Key: someBean - Value: 这是一个bean
 
Properties contents:
Key: 姓 - Value: 张
Key: 名 - Value: 小小
 
Set contents:
Value: Hello World!
Value: 这是一个bean
 
List contents:
Value: Hello World!
Value: 这是一个bean
 
 
 
这篇文章源代码下载(不包含库文件):http://free.ys168.com/?javamxj  Spring目录下面的SpringBasic.zip。
 
注意: 需要使用JDK 5。
 
 

抱歉!评论已关闭.