springIO容器源码笔记(二)

上一篇分析了IOC容器的前四个方法,接下来继续看其他方法。

二.invokeBeanFactoryPostProcesssors(beanFactory):执行BeanFacotoryPostProcessor后置处理器的postProcessBeanFacotory()增强方法。

invokeBeanFactoryPostProcProcesssors(beanFactory)方法会实例化和调用所有BeanFactoryPostProcessor(包括其子类BeanDefinitionPostProcessor)。

首先,需要明白BeanFacoryPostProcessor是什么?

BeanFacoryPostProcessor:bean工厂增强器,是spring初始化BeanFactory时对外暴露的扩展点,是spring容器允许BeanFactoryPostProcessor在容器实例化任何bean之前读取bean的定义,并可以修改它。

三.registerBeanPostProcessors(beanFactory):注册BeanPostProcessor。

主要是将所有实现了BeanPostProcessor接口的类注册到BeanFactory中。这里只是完成了注册工作,并没有执行BeanPostProcessor的增强逻辑,真正执行是在bean初始化前,后,后面我们看到bean初始化逻辑的时候可以看到哦。

首先,明白BeanPostProcessor是干什么的?

BeanPostProcessor是bean的后置处理器,它允许我们在bean初始化前,初始化后,对bean进行实例化修改。

BeanPostProcessor是一个接口,其定义主要有两个方法:

1.postProcessBeforeInitialization(),执行初始化前会调用

2.postProcessAfterInitiallization(),执行初始化后会调用

读者需要区分BeanFactoryPostProcessor和BeanPostProcessor。

BeanFactoryPostProcessor:针对BeanFactory的扩展,主要用在bean实例化之前,读取bean的定义,允许我们修改它。

BeanPostProcessor:是针对bean的扩展,主要用在bean实例化之后,执行初始化方法前后,允许我们对bean实例进行修改。

接下来,看一下registerBeanPostProcessors(beanFactory)的核心逻辑:

处理逻辑和之前BeanFactoryPostProcessorFactory类似。

四.initMessageSourece():为上下安初始化MessageSource

五.initApplicationEventMulticaseter():初始化事件多播器

先判断有没有用户自定义的ApplicationEventMuticaster事件多播放器,没有的话创建一个SimpleApplicationEventMulticaster,并作为单例bean注册到bean工厂。

六.onRefresh():模版方法,留给子类初始化其他的bean

七.registerListeners():注册监听器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值