组件装配
context:component-scan元素还会自动注册AutowiredAnnotationBeanPostProcessor实例,该实例可以自动装配具有@Autowired、@Resource和@Inject注解的属性。
@Autowired
该注解自动装配具有兼容类型的单个Bean属性
- 构造器,普通字段(非public),一切具有参数的方法都可以使用该注解
- 默认情况下,使用该注解的属性都需要被设置,但Spring找不到匹配的Bean装配属性的时候,会抛出异常,若某一属性不被设置,可以设置该注解的required属性为false。
- 默认情况下,当IOC容器里面存在多个类型兼容的Bean时候,通过自动装配将无法工作,此时可以在@Qualifier注解里面提供Bean的名称。Spring允许对方法的入参标注@Qualifiter已指定注入的Bean的名称。
- 该注解也可以应用在数组类型的属性上,此时spring将会把所有匹配的Bean进行自动装配。
- 该注解也可以应用到集合属性上,此时spring读取该集合的类型信息,然后自动装配所有与之兼容的Bean。
- 该注解用在Java.util.Map上时候,若该Map的键值是String,那么Spring将自动装配与之Map值类型兼容Bean,此时Bean的名称作为键值。