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-2026 CODEPRJ.COM