doCreateBean之populateBean方法详解


该方法在AbstractAutowireCapableBeanFactory类中的doCreateBean方法中有使用到

populateBean方法大致流程图:

 

 

 

(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缓存容器中

    

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM