Spring ClassPathXmlApplicationContext源码解读
2022-05-11 14:47:57 0 举报
Spring ClassPathXmlApplicationContext源码解读
作者其他创作
大纲/内容
执行BeanDefinitionRegistryPostProcessor
在beanFactory中获取实现了BeanFactoryPostProcessor接口的所有类并实例化
调用父类构造方法,创建Ant通配符模式的 Resource 查找器
执行AbstractApplicationContext的beanFactoryPostProcessors
获取所有实现BeanPostProcessor接口的类名
执行BeanFactory后置处理器invokeBeanFactoryPostProcessors()
解析传入的配置文件路径(setConfigLocations)
根据不同的优先级进行实例化并执行
在注册的bean中查找Listener bean,并注册到消息广播器中registerListeners()
刷新上下文环境prepareRefresh()
开始
刷新容器refresh()
创建DefaultListableBeanFactory类型的beanFactorycreateBeanFactor()
预处理BeanFactoryprepareBeanFactory()
spring.xml配置
加载BeanDefinition
1.是否允许覆盖同名称的不同定义的对象2.是否允许循坏依赖
初始化Message源(国际化处理)initMessageSource()
执行BeanFactoryPostProcessor
子类覆盖处理postProcessBeanFactory()
注册registerBeanPostProcessors()
初始化BeanFactory读取xml配置文件obtainFreshBeanFactory()
设置序列化Id
完成刷新过程的后续处理finishRefresh()
configLocations
初始化剩下的单实例(非懒加载的)finishBeanFactoryInitialization()
获取环境配置(ConfigurableEnvironment)
在beanFactory中获取实现了BeanDefinitionRegistryPostProcessor接口的所有类并实例化
初始化应用消息广播器initApplicationEventMulticaster()
PostProcess结束处理beanPostProcess.end()
0 条评论
下一页