zoukankan      html  css  js  c++  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>
    

      

     

  • 相关阅读:
    linux下文件编码转换
    linux下打开文件数
    从hive0.7.1升级到hive0.8.1
    hive使用过程中碰到的问题
    JVM和GC
    代码生成器开发设计
    开源代码生成器:SmartCode [转]
    byte与其他类型的转换
    测试版天思.net代码生成器
    [源码试]写xml的解析器
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2835122.html
Copyright © 2011-2022 走看看