Spring09_AutoWiredByAnnotation
注解实现自动装配**@AutoWired**
- 注解能标识的位置
- 标识在要赋值的属性上,不需要设置成员变量的set方法
- 标识在set方法上
- 标识在要赋值的属性的有参构造方法上
- 注解的原理
- 默认通过byType,在IOC中匹配bean来为属性赋值
- 如果有多个类型,则使用byName,但是注意注解管理bean时bean的id是类的小驼峰
- 如果byType和byName都无法实现自动装配,此时会报多类型匹配失败异常NoUniqueBeanDefinitionException
- 那么可以通过**@Qualifier**注解来指定一个value值,让byName方式指定某个bean来为这个bean的属性赋值
- 特殊情况
- 没有类型匹配异常NoSuchBeanDefinitionException,是因为注解@Autowired,它的required属性的值为true,表示必须完成装配,而XML方式时required属性的值为false,所以报了空指针异常,此时改成false即可,能装配就装配,不能装配按属性的默认值来