doCreateBean之populateBean⽅法详解
该⽅法在AbstractAutowireCapableBeanFactory类中的doCreateBean⽅法中有使⽤到
populateBean⽅法⼤致流程图:
实例化bean的三种方式(1)对Bean进⾏判空逻辑
(2)在设置属性前去修改Bean状态,也可以控制是否继续给Bean设置属性值(如果Bean不是Spring限制的 || 具有感知Bean实例化的后置处理器){执⾏配置上的后置处理器}(3)如果前⾯代码设置了continueWithPropertyPopulation = false,表⽰⽤户可能已经⾃⼰填充了,此时直接返回Bean
(4)从BeanDefinition⾥⾯获取到能为Bean设置上的属性值
(5)根据Bean配置的依赖注⼊⽅式完成注⼊
(6)对Bean解析完未设置的属性进⾏再处理(重新检查是否注册了感知Bean实例化的后置处理器,如果注册了,则重新获取propertyValues(属性集合)然后进⾏依赖注⼊)    其中的AutowiredAnnotationBeanPostProcessor(后置处理器)在doCreateBean().applyMergedBeanDefinitionPostProcess()中如果有被执⾏到的话,会将标记了
@Autowired和@Value的存⼊到metadata.checkedElements缓存容器中