转载

【Java】Spring中注入List,Set,Map,Properties

  • List – <list/>
  • Set – <set/>
  • Map – <map/>
  • Properties – <props/>

Spring beans

import java.util.List;


import java.util.Map;


import java.util.Properties;


import java.util.Set;


  

public class Customer

{

    private List<Object> lists;


    private Set<Object> sets;


    private Map<Object, Object> maps;


    private Properties pros;


  

    //...

}

配置文件:

<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="CustomerBean" class="com.mkyong.common.Customer">


  

        <!-- java.util.List -->


        <property name="lists">


            <list>


                <value>1</value>


                <ref bean="PersonBean" />


                <bean class="com.mkyong.common.Person">


                    <property name="name" value="mkyongList" />


                    <property name="address" value="address" />


                    <property name="age" value="28" />


                </bean>


            </list>


        </property>


  

        <!-- java.util.Set -->


        <property name="sets">


            <set>


                <value>1</value>


                <ref bean="PersonBean" />


                <bean class="com.mkyong.common.Person">


                    <property name="name" value="mkyongSet" />


                    <property name="address" value="address" />


                    <property name="age" value="28" />


                </bean>


            </set>


        </property>


  

        <!-- java.util.Map -->


        <property name="maps">


            <map>


                <entry key="Key 1" value="1" />


                <entry key="Key 2" value-ref="PersonBean" />


                <entry key="Key 3">


                    <bean class="com.mkyong.common.Person">


                        <property name="name" value="mkyongMap" />


                        <property name="address" value="address" />


                        <property name="age" value="28" />


                    </bean>


                </entry>


            </map>


        </property>


  

        <!-- java.util.Properties -->


        <property name="pros">


            <props>


                <prop key="admin">admin@nospam.com</prop>


                <prop key="support">support@nospam.com</prop>


            </props>


        </property>


  

    </bean>


  

    <bean id="PersonBean" class="com.mkyong.common.Person">


        <property name="name" value="mkyong1" />


        <property name="address" value="address 1" />


        <property name="age" value="28" />


    </bean>


  

</beans>

运行:

public class App

{

    public static void main( String[] args )


    {


        ApplicationContext context = new ClassPathXmlApplicationContext("SpringBeans.xml");


  

        Customer cust = (Customer)context.getBean("CustomerBean");


        System.out.println(cust);


  

    }

}

我们也可以使用 ListFactoryBean。The ‘ ListFactoryBean ‘ class provides developer a way to create a concrete List collection class (ArrayList and LinkedList) in Spring’s bean configuration file.

<bean id="CustomerBean" class="com.mkyong.common.Customer">


        <property name="lists">


            <bean class="org.springframework.beans.factory.config.ListFactoryBean">


                <property name="targetListClass">


                    <value>java.util.ArrayList</value>


                </property>


                <property name="sourceList">


                    <list>


                        <value>1</value>


                        <value>2</value>


                        <value>3</value>


                    </list>


                </property>


            </bean>


        </property>


    </bean>

或者:加入:xmlns:util="http://www.springframework.org/schema/util"然后就可以:

<beans xmlns="http://www.springframework.org/schema/beans"


    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"


    xmlns:util="http://www.springframework.org/schema/util"


    xsi:schemaLocation="http://www.springframework.org/schema/beans


    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd


    http://www.springframework.org/schema/util


    http://www.springframework.org/schema/util/spring-util-2.5.xsd">


  

    <bean id="CustomerBean" class="com.mkyong.common.Customer">


        <property name="lists">


            <util:list list-class="java.util.ArrayList">


                <value>1</value>


                <value>2</value>


                <value>3</value>


            </util:list>


        </property>


    </bean>


  

</beans>

SetFactoryBean The ‘SetFactoryBean‘ class provides developer a way to create a concrete Set collection (HashSet and TreeSet) in Spring’s bean configuration file.

set和上面的一样:

<bean id="CustomerBean" class="com.mkyong.common.Customer">


        <property name="sets">


            <util:set set-class="java.util.HashSet">


                <value>1</value>


                <value>2</value>


                <value>3</value>


            </util:set>


        </property>


    </bean>

MapFactoryBean The ‘MapFactoryBean‘ class provides developer a way to create a concrete Map collection class (HashMap and TreeMap) in Spring’s bean configuration file.

map也一样:

<bean id="CustomerBean" class="com.mkyong.common.Customer">


        <property name="maps">


            <util:map map-class="java.util.HashMap">


                <entry key="Key1" value="1" />


                <entry key="Key2" value="2" />


                <entry key="Key3" value="3" />


            </util:map>


        </property>


    </bean>

原文  https://yq.aliyun.com/articles/337672
正文到此结束
Loading...