spring依赖注入
IOC作用:
降低程序间依赖关系 (耦合)
依赖注入:
能注入的数据有三类
1. 基本类型和string
2. 其他bean类型(在配置文件中或者注解配置过的bean)
3. 复杂类型/集合类型
注入方式:通过xml配置文件
1. 构造函数注入
**使用标签:**constructor-arg
**标签出现的位置:**bean标签内部
标签中的属性:
1. **type :**用于指定要注入数据的数据类型,该数据类型是构造函数中某个或某些参数的类型
2. **index:**用于指定要注入数据 给构造函数中指定索引位置的参数赋值 索引的位置从0开始
3. **name:**用于给构造函数中的指定名称的参数赋值 (常用)
=以上三个应用于指定构造函数中的哪个参数赋值======
4. **value:**用于提供基本类型和string类型的数据
5. **ref:**用于指定其他bean类型的数据 (在spring的ioc核心容器中出现过的bean)
**优势:**获取bean对象时候,注入数据是必须的操作,否则对象无法创建成功
**弊端:**改变了实例化的方式,用不到的数据也必须提供。
2. Set注入
**使用标签:**property
标签出现的位置:bean标签内部
标签中的属性:
1. **name**:用于指定注入时所调用的set方法的名称
2. **value**:用于指定基本类型或者String类型的注入数据
3. **ref:**用于指定其他Bean类型的注入数据(在IOC容器当中的bean)
**优势:**创建对象的时候没有明确的限制,可以使用默认的构造函数
**弊端:**如果某个成员变量必须有值,则获取对象时候可能没有执行到set方法
3. 复杂类型/复合类型的注入
-
用于给List结构注入的标签:
<list> <array> <set>
-
用于给map结构注入的标签:
<props> <map>