一、概述
@Autowire是可以被标注在构造函数、属性、setter方法或者配置方法上,用于实现依赖自动注入。
二、工作原理
@Autowire注解的作用是由AutowiredAnnotationBeanPostProcessor实现的,实现了MergedBeanDeinitionPostProcessor接口。进而实现了接口中的postProcessMergedBeanDefinition方法,@Autowired是通过这个方法实现了注入类型的预解析。
三、Autowired的使用
构造函数注入
属性注入
方法注入
四、自动装配
一、默认优先按照类型去容器中找对应的组件:applicationContext.getBean();
二、如果找到多个相同类型的组件,在将属性的名称作为组件的ID去容器中查找;
Spring对autowire注解的实现逻辑位于类:AutowiredAnnotationBeanPostProcessor之中。
图示: