spring–基础–04–Beans自动装配
代码地址
https://gitee.com/DanShenGuiZu/learnDemo.git
1、介绍
- 我们学会如何使用
<bean>
元素来声明bean和通过使用XML配置文件中的<constructor-arg>和<property>
元素来注入。 - 自动装配就是在不使用
<constructor-arg>和<property>
元素的情况下自动装配bean。 - 不建议使用
2、自动装配方式
- byName:属性名(PName)自动装配。
- 从bean中找到对应属性的名称PName,PName和xml中的bean的id或者name进行匹配。
- 匹配成功,注入匹配的bean。
- 匹配失败,它将抛出异常。
- byType:由属性类型自动装配。
- 从bean中找到对应属性的类型(Ptype),Ptype和xml中的bean的class全限定名匹配。
- 匹配成功,注入匹配的bean。
- 匹配失败,它将抛出异常。
- constructor:类似byType,但该类型只用于构造函数参数类型。
- 构造参数类型(CPtype),CPtype和xml中的bean的class全限定名匹配。
- 匹配成功,注入匹配的bean。
- 匹配失败,它将抛出异常。
- autodetect
- 先尝试通过constructor来匹配
- 匹配失败后,再尝试通过byType来自动装配。
3、自动装配的局限性
- 重写的可能性:你可以使用总是重写自动装配的
<constructor-arg>和<property>
设置来指定依赖关系。 - 原始数据类型:不能自动装配基本类型,字符串和类。
- 混乱的本质:自动装配不如显式装配精确。
4、案例
4.1、公共配置
4.2、byName
4.3、byType
4.4、constructor