spring 注入集合类型 ListSetMap

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 注入集合类型 ListSetMap相关的知识,希望对你有一定的参考价值。

首先先看用到的类:

Class1,Class2

代码:

package my.spring.fuck;

public class Class1 implements Interface1{
    private String a;
    
    public String getA() {
        return a;
    }

    public void setA(String a) {
        this.a = a;
    }
    public void eat(String s){
        System.out.println(s+a);
    }
}
package my.spring.fuck;

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

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Class2 {
    private List<Class1> fuckList1;//集合统一装入Class1
    private List fuckList2;
    
    private Set<Class1> fuckSet1;
    private Set fuckSet2;
    
    private Map<String,String> fuckMap1;
    private Map<String,Class1> fuckMap2;
    
    public static void main(String[] args){
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        //Class2 c2=(Class2)ac.getBean("c2");
        Class2 c2=ac.getBean(Class2.class);
        c2.print();
    }
    
    public void print(){
        System.out.println("this is fuckList1");
        for(Class1 c1:fuckList1){
            c1.eat("");
        }
        
        System.out.println("this is fuckList2");
        for(int i=0;i<fuckList2.size();i++){
            ((Class1)fuckList2.get(i)).eat("");
        }
        
        System.out.println("this is fuckSet1");
        for(Class1 c1:fuckSet1){
            c1.eat("");
        }
        
        System.out.println("this is fuckSet2");
        Iterator<Class1> iterator=fuckSet2.iterator();
        while(iterator.hasNext()){
            (iterator.next()).eat("");
        }
        
        System.out.println("this is fuckMap1");
        System.out.println(fuckMap1.get("mapKey1"));
        
        System.out.println("this is fuckMap2");
        Class1 c1=fuckMap2.get("mapKey1");
        c1.eat("");
    }

    public List<Class1> getFuckList1() {
        return fuckList1;
    }

    public void setFuckList1(List<Class1> fuckList1) {
        this.fuckList1 = fuckList1;
    }

    public List getFuckList2() {
        return fuckList2;
    }

    public void setFuckList2(List fuckList2) {
        this.fuckList2 = fuckList2;
    }

    public Set<Class1> getFuckSet1() {
        return fuckSet1;
    }

    public void setFuckSet1(Set<Class1> fuckSet1) {
        this.fuckSet1 = fuckSet1;
    }

    public Set getFuckSet2() {
        return fuckSet2;
    }

    public void setFuckSet2(Set fuckSet2) {
        this.fuckSet2 = fuckSet2;
    }

    public Map<String, String> getFuckMap1() {
        return fuckMap1;
    }

    public void setFuckMap1(Map<String, String> fuckMap1) {
        this.fuckMap1 = fuckMap1;
    }

    public Map<String, Class1> getFuckMap2() {
        return fuckMap2;
    }

    public void setFuckMap2(Map<String, Class1> fuckMap2) {
        this.fuckMap2 = fuckMap2;
    }
    
    
}

application.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>
    <bean id="c2" class="my.spring.fuck.Class2">
        <property name="fuckList1">
            <list>
                <ref bean="c1"/>
                <ref bean="c1"/>
            </list>
        </property>
        <property name="fuckList2">
            <list>
                <ref bean="c1"/>
                <ref bean="c1"/>
            </list>
        </property>
        <property name="fuckSet1">
            <set>
                <ref bean="c1"/>
                <ref bean="c1"/>
            </set>
        </property>
        <property name="fuckSet2">
            <set>
                <ref bean="c1"/>
                <ref bean="c1"/>
            </set>
        </property>
        <property name="fuckMap1">
            <map>
                <entry key="mapKey1" value="mapValue1"/>
            </map>
        </property>
        <property name="fuckMap2">
            <map>
                <entry key="mapKey1">
                    <ref bean="c1"/>
                </entry>
            </map>
        </property>
    </bean>
    <bean id="c1" class="my.spring.fuck.Class1">
        <property name="a" value="i am a">
        </property>
    </bean>
</beans>

运行Class2,控制台输出如下:

this is fuckList1
i am a
i am a
this is fuckList2
i am a
i am a
this is fuckSet1
i am a
this is fuckSet2
i am a
this is fuckMap1
mapValue1
this is fuckMap2
i am a

以上是关于spring 注入集合类型 ListSetMap的主要内容,如果未能解决你的问题,请参考以下文章

spring集合类型注入

listsetmap以及array的区别

Spring各类集合注入

Day604.@Value注入问题&集合类型注入问题 -Spring编程常见错误

如何正确使用 Spring 注入集合类型?

Spring配置文件中注入复杂类型属性