Spring源码分析(一)
public void refresh() throws BeanException,IllegalStateException{
synchronized(this.startupShutdownMonitor)
{
......
}
}
BeanFactory的构建,BeanFactory是ApplicationContext的父接口,是Spring框架的顶级容器工厂对象,BeanFactory只能管理bean对象,没有其他功能,如:aop切面管理,propertyplaceholder的加载,构建BeanFactory的功能就是管理bean对象
创建BeanFactory中管理的对象
postProcessBeanFactory 加载配置中BeanFactory无法处理的对象,如propertyplaceholder的加载
invokeBeanFactoryPostProcessors:将上一步加载的内容,作为一个容器可以管理的bean对象注册到ApplicationContext中,底层实质是将postProcessBeanFactory 中加载的内容包装成一个容器ApplicationContext
可以管理的bean对象
registerBeanPostProcessors:继续上一步的注册操作,配置文件中配置的bean对象都创建且注册完成
initMessageSource:i18n国际化,初始化国际化消息源
initApplicationEventMulticaster:注册事件多播监听,如ApplicationEvent事件,是Spring框架中的观察者模式实现机制
onRrefsh:初始化主题资源(ThemeSource),Spring框架提供的视图主题信息
registerListeners:创建监听器,并注册
finishBeanFactoryInitialization:初始化配置中出现的所有lazy-init=false的bean对象且bean对象必须是singleton的
finshRefresh