最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

史上最完整的Spring Bean的生命周期

2022-12-20 12:53 作者:suuh  | 我要投稿

Spring Bean 的生命周期

1.加載Bean定義

通過 loadBeanDefinitions 掃描所有xml配置、注解將Bean記錄在beanDefinitionMap中

2.創(chuàng)建Bean對象

通過 createBean 遍歷 beanDefinitionMap 創(chuàng)建bean

2.1.構(gòu)建對象

  1. 容器通過 createBeanInstance 進(jìn)行對象構(gòu)造
  2. 獲取構(gòu)造方法:@Autowired
  3. 準(zhǔn)備參數(shù) 根據(jù)類查找>參數(shù)名查找
  4. 構(gòu)造對象
  5. 無參對象直接實(shí)例化

2.2.填充屬性

通過populateBean方法為Bean內(nèi)部所需的屬性進(jìn)行賦值

  • 通常是 @Autowired 注解的變量

2.3.初始化Bean對象

通過initializeBean對填充后的實(shí)例進(jìn)行初始化

填充初始化容器相關(guān)信息

通過 invokeAwareMethods 方法:為實(shí)現(xiàn)aware接口【信息感知接口】的Bean 設(shè)置注入beanName、beanFactory等容器信息

初始化構(gòu)造方法

通過 invokeInitMethods 方法進(jìn)行初始化:

如果Bean實(shí)現(xiàn)InitializingBean接口進(jìn)行處理【未實(shí)現(xiàn)則不進(jìn)行】

  • afterPropertiesSet方法【bean填充屬性后執(zhí)行】
  • initMethod 方法
Bean的后置處理

invokeInitMethods 的前后進(jìn)行

  • applyBeanPostProcessorsBeforeInitialization
  • invokeInitMethods
  • applyBeanPostProcessorsAfterInitialization

在后置處理中處理了包括:AOP【AnnotationAwareAspectJAutoProxyCreator】

負(fù)責(zé) 構(gòu)造后@PostConstruct銷毀前@PreDestroy 的 InitDestoryAnnotationBeanPostProcessor 等


注冊銷毀

通過reigsterDisposableBean處理實(shí)現(xiàn)了DisposableBean接口的Bean的注冊

3.添加到單例池

通過 addSingleton 方法,將Bean 加入到單例池 singleObjects

4.銷毀

4.1.銷毀前

調(diào)用 bean中@PreDestory 注解的方法

通過 postProcessBeforeDestruction 方法調(diào)用destoryBean逐一銷毀Bean

4.2.銷毀

調(diào)用 destoryBeans

4.3.執(zhí)行客戶自定義銷毀

調(diào)用 invokeCustomDestoryMethod


史上最完整的Spring Bean的生命周期的評論 (共 條)

分享到微博請遵守國家法律
澎湖县| 翼城县| 冕宁县| 洪湖市| 黄平县| 墨玉县| 安龙县| 西林县| 垦利县| 城固县| 广州市| 鱼台县| 阳山县| 乌兰浩特市| 普兰县| 汕头市| 改则县| 环江| 玉林市| 莱西市| 马尔康县| 桓台县| 衢州市| 西青区| 桂平市| 会宁县| 林州市| 英超| 汤阴县| 岳阳县| 长白| 德清县| 名山县| 泰和县| 余庆县| 河津市| 许昌县| 长顺县| 陵水| 珲春市| 孝感市|