下面的例子展示了如何注入
- 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
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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
|
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
<
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
>
|