五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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的生命周期的評論 (共 條)

分享到微博請遵守國家法律
松原市| 高清| 泰州市| 余江县| 建水县| 池州市| 永登县| 石屏县| 临安市| 兰考县| 东安县| 怀宁县| 南丰县| 宜都市| 松原市| 义马市| 准格尔旗| 东丽区| 会东县| 宁波市| 确山县| 调兵山市| 金湖县| 朝阳县| 宁南县| 礼泉县| 庆安县| 宝坻区| 永州市| 葫芦岛市| 牡丹江市| 新乐市| 咸丰县| 白水县| 大宁县| 柘城县| 林周县| 屏边| 萝北县| 渭源县| 保亭|