Spring注入容器类型List、Map、Properties、Set

本文介绍如何在Spring框架中进行集合类型的注入,包括List、Set、Map和Properties等,并提供了配置示例。

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

下面的例子展示了如何注入

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

Spring beans

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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;
    //...
}

  配置文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    < 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 >

运行:

?
1
2
3
4
5
6
7
8
9
10
11
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.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
< 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"然后就可以:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    < 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和上面的一样:

?
1
2
3
4
5
6
7
8
9
< 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也一样:

?
1
2
3
4
5
6
7
8
9
< 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 >

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值