依赖注入:为对象属性赋值的方法
1.set注入
property:通过成员变量的set方法进行赋值
name:设置需要赋值的属性名(和set方法有关)
value:设置为属性所赋的值
ref:为属性赋另外一个bean
测试类中测试
2.构造器注入
如果我们在每一个constructor-arg都只写value属性,spring会为我们自动匹配拥有相同数量的参数的构造方法
特殊值处理
-
字面量赋值
int a= 10 ;
使用<property name =“ ” value= “”> -
null值
-
xml 实体
-
CDATA节(是xml中特殊的标签,不能写在属性中)
为类类型的属性赋值
-
创建一个类Clazz表示班级
-
在student类中添加属性Clazz
-
在spring配置文件中创建bean
-
在测试类中测试
-
也可以通过级联的方式实现
在测试类中进行测试,发现报错
要想使用这种方式进行赋值,就必须要先为clazz赋值才可以,所以这种一般用于修改,很少使用这种方式
-
还可以使用内部bean进行赋值
注意ApplicationContext无法直接获取内部bean
为数组类型的属性值赋值
- 在student实体类中添加hobby数组属性
- 在配置文件中为数组类型的值赋值,使用array标签嵌套value,如果是类类型数组,就是用ref标签
为集合类型的属性赋值
-
在clazz实体类中创建一个list集合
-
在配置文件中为list属性赋值
-
在测试类中验证
-
也可以使用util约束单独创建一个集合bean
-
在原位置使用ref指向这个集合bean
-
在测试类中测试
为Map类型的属性赋值
-
创建teacher实体类
-
在student实体类中添加对应的属性
-
在配置文件中添加两个老师的bean
-
在studentFive中为teacherMap属性赋值
-
在测试类中验证
-
也可以使用util约束
-
在原来位置引入
-
在测试类中进行测试
依赖注入之p命名空间
在测试类中进行测试,没有问题