finishBeanFactoryInitialization 方法流程总结(一) getBean之前 2021-05-26

这个方法是 spring中最重要的方法,功能点
1.bean的实例化过程
2.ioc
3.注解支持
4.BeanPostProcessor的执行
5.AOP的入口
 
这个方法会把 所有的非懒加载的bean的单例bean加载,除了前面学过的两个接口实现类( BeanFactoryPostProcessor 接口, BeanPostProcessor 接口),还有就是一些内部bean
 
下面是代码流程
preInstantiateSingletons方法的核心代码
 
 
  我们来看看getMergedLocalBeanDefinition()这个方法,看注解是把父的beanDefinition里面的属性 拿到子的beanDefinition中,看他的深层方法可以知道
mergedBeanDefinitions 中存放的是beanName 和 父beanDefinitions的映射
RootBeanDefinition是定义出来的一个子beanDefition
 
 
这个方法有点长
 
 
这些流程只要是吧不同的 BeanDefinition实现,合并成一个 RootBeanDefinition.  
对于 MergedBeanDefinition属性spring提供了响应的扩展接口 MergedBeanDefinitionPostProcessor
MergedBeanDefinition生成之后,bean属性填充之前,对该bean和该MergedBeanDefinition做一次回调
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值