spring 装载list

本文介绍如何在Spring框架中使用XML配置文件及注解两种方式来装配List类型的属性,具体展示了如何将实现同一接口的多个Bean装配到一个List集合中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.需要装list的类

public class Test {

    private List<TestInterface> testInterface;
}

2.接口

public interface TestInterface{
    public void sayHello();
}

3.装载方式

第一种:xml直接注入

实现接口

public class Test1 implements TestInterface {

    public void sayHello() {
        System.out.println("111111111111111");
    }
}


public class Test2 implements TestInterface {

    public void sayHello() {
        System.out.println("2222222222222222222222");
    }
}

在xml 里面如下配置:

<bean class="com.demo.Test">
    <property name = "testInterface">
        <list>
            <bean class = "com.demo.Test1"/>
            <bean class = "com.demo.Test2"/>
        </list>    
    </property>
</bean>

即可装载成功

第二种:注解装载

@Component
public class Test1 implements TestInterface {

    public void sayHello() {
        System.out.println("111111111111111");
    }
}

@Component
public class Test2 implements TestInterface {

    public void sayHello() {
        System.out.println("2222222222222222222222");
    }
}

直接使用@Autowired或者@Resource注入
public class Test {
    
    @Autowired
    private List<TestInterface> testInterface;
}

第三种:xml util:list装载

在xml里面如下配置

<util:list id = "testList" list-class="java.util.ArrayList" >
    <bean class = "com.demo.Test1"/>
    <bean class = "com.demo.Test2"/>
</util:list>

在使用的地方注入,只能用@Resource注入,而且变量名称必须和xml中的util:list的声明的id一样

public class Test {
    
    //无法注入 报错
    @Autowired
    private List<TestInterface> testInterface;

    //无法注入 报错
    @Autowired
    private List<TestInterface> testList;
    
    //无法注入 报错
    @Resource
    private List<TestInterface> testInterface;

    //注入成功
    @Resource
    private List<TestInterface> testList;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值