依赖注入的三种方式
- 依赖注入:减小对象之间的耦合,通过spring来对对象内的属性赋值
- 依赖注入的数据类型:
- 基本数据类型和String类型
- 其他bean类型(在配置文件中或者注解配置过的bean)
- 复杂类型和集合类型
通过构造函数注入
- ==前提==:
- 构造函数注入的属性最好不经常发生改变
- 类中提供了有参的构造函数
- 构造函数注入:
- 使用的标签:
- 标签出现的位置:标签的内部
- 标签中的属性:
- type:指定要注入构造函数参数的数据类型,当存在多个相同数据类型的参数时会报错——==不推荐使用==
- index:指定要注入构造函数的参数的索引,从0开始——==不推荐使用==
- name:指定要注入构造函数的参数的名称——==常用==
- ——————————————————————————————————————
- value:注入基本数据类型和String数据类型的值
- ref:根据id注入复杂数据类型(在IOC容器中的bean)
- 注入方式:
1 | xml复制代码<!--被注入的bean--> |
- 构造函数注入的优势:在获取bean对象时,注入数据时必须的操作,否则对象无法成功创建
- 构造函数注入的劣势:改变了bean的实例化方式,使我们在创建bean对象时,如果用不到这些数据,也必须提供
通过set方法注入
- ==前提==:在类中提供了set方法
- set方法注入:
- 使用的标签:
- 标签位置:标签内部
- 标签属性
- name:用于指定属性名称(set方法后的名称,首字母变小写)
- value:注入基本数据和String
- ref:引入复杂的数据类型和集合类型
- 注入方式:
1 | xml复制代码<bean id="xx" class="xx.xx.xx"> |
- set方法注入的优势:创建对象时没有明确的限制,可以使用默认的构造函数
- set方法注入的劣势:如果有某个成员必须有值,则获取对象时,有可能set方法没有执行
注入集合类型
- 使用的标签:结构相同的标签可以互换
- ,,:用于给list结构集合注入的标签
- 标签位置:标签内部
- 注入方式:
1 | xml复制代码<bean id="xx" class="xx.xx.xx"> |
本文转载自: 掘金