spring DI-setter注入
1、对象定义
Student类和Person类:
1 | public class Student{ |
2、装置属性配置
装载属性配置如下:
- 基本属性
- list
- set
- map
- object
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<bean id="student" class="..." scope="prototype"></bean>
<bean id="person" class="...">
<!--
是用来描述Person的属性
name为属性的名称
value就给name的属性赋值
基本属性可以这样赋值:
String类型和基本类型(数据类型)
ref是给引用类型赋值的
<property name="student" ref="student"/>
<property name="student">
<ref bean="student"/>
</property>
-->
<property name="pid" value="1"></property>
<property name="name" value="王二麻子"></property>
<property name="student">
<ref bean="student"/>
</property>
<property name="list">
<list>
<value>list1</value>
<value>list2</value>
<ref bean="student"/>
</list>
</property>
<property name="set">
<set>
<value>set1</value>
<value>set2</value>
<ref bean="student"/>
</set>
</property>
<property name="map">
<map>
<entry key="map1">
<value>map1</value>
</entry>
<entry key="map2">
<ref bean="student"/>
</entry>
</map>
</property>
<property name="properties">
<props>
<prop key="p1">afd</prop>
<prop key="p2">p2</prop>
</props>
</property>
</bean>
注意:
如果在student对象scope对象配置为prototype,在student类的构造方法中写入输出student语句,将会打印出4个student。
第一个因为有ref引用,spring将对象创建提前了,创建了一个student对象;
后面三个是一个ref创建一个student对象;