springIOC 中bean的生命週期

參考博客:https://www.cnblogs.com/redcool/p/6397398.html

主要流程

1、bean實例創建
2、給bean屬性賦值
3、如果bean實現了Aware相關接口如,BeanNameAware, BeanFactoryAware, InitializingBean, ApplicationContextAware就調用相對於的初始化方法
4、通過容器使用bean
5、容器關閉時候,調用bean的銷燬方法,在AbstractApplicationContext中調用destroy方法。
bean的初始化方法調用在AbstractAutowireCapableBeanFactory類中的initializeBean方法中進行。

在這裏插入圖片描述

bean設置lazy-init時候加載流程:

1、BeanFactory
2、AbstractApplicationContext ->refresh() ->finishBeanFactoryInitialization(beanFactory); ->beanFactory.preInstantiateSingletons();
3、最後調用getbean()方法
在這裏插入圖片描述
相當於初始化的時候調用getBean()進行實例化bean。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章