2.基于注解的自动装配
1. Autowired作用
在成员变量上直接标记\(@Autowired\)注解即可完成自动装配,不需要提供\(setXxx()\)方法。
2. Autowired使用的位置
(1) 标识在成员变量上,此时不需要设置成员变量的set方法
(2) 标识在\(set\)方法上
(3) 标识在为当前成员变量的构造函数上
3. Autowired实现原理
(1) 默认通过\(byType\)的方式,在IOC容器中通过类型匹配某个\(bean\)为属性赋值
(2) 流程图,如果有多个类型匹配的\(bean\),就会转换为\(byName\)的方式
(3) 如果\(byName\)也行不通,就使用@Qualifier("指定Bean的id")来指定一个\(Bean\).
(4) \(@Autowired\)中有属性\(required\),默认值为\(true\),因此在自动装配无法找到相应的bean时,会装配失败
4. 注意事项
(1) 如果IOC容器中没有一个类型匹配的Bean,此时会抛出异常NoSuchBeanDefinitionException