spring框架_@AutoWiredAnnotationBeanPostProcessor执行分析
AutoWiredAnnotationBeanPostProcessor 执行依赖注入的时候(解析@Autowired)调用了postProcessProperties 方法
这个方法首先要找到哪些属性,方法被标注了@Autowired注解,把这些数据添加到 InjectMetadata中,然后调用metadata.inject方法按类型进行依赖注入,注入时按类型进行查找
按类型查找的流程:
- 首先通过反射拿到被注解标注的字段或者方法
- 再将这个字段,或者方法中的参数添加到DependencyDescriptor中
- 通过beanFactory的doResolveDependency方法找到和这个属性具有相同类型的bean
- 最后通过反射的set方法把属性赋值