ClassPathXmlApplicationContext流程
2022-05-19 09:48:48 1 举报
AI智能生成
登录查看完整内容
ClassPathXmlApplicationContext初始化流程思维导图
作者其他创作
大纲/内容
initPropertySources()
getEnvironment().validateRequiredProperties()
1、prepareRefresh()
hasBeanFactory()
destroyBeans()
closeBeanFactory()
createBeanFactory()
beanFactory.setSerializationId(getId())
customizeBeanFactory(beanFactory)
initBeanDefinitionReader(beanDefinitionReader)
getConfigResources()
getConfigLocations()
getResourceLoader()
((ResourcePatternResolver) resourceLoader).getResources(location)
encodedResource.getResource().getInputStream()
InputSource inputSource = new InputSource(inputStream)
createBeanDefinitionDocumentReader()
preProcessXml(root)
importBeanDefinitionResource(ele)
processAliasRegistration(ele)
delegate.parseBeanDefinitionElement
getNamespaceURI(node)
DefaultNamespaceHandlerResolver.getHandlerMappings()
handlerMappings.get(namespaceUri)
BeanUtils.instantiateClass(handlerClass)
namespaceHandler.init()
this.readerContext.getNamespaceHandlerResolver().resolve(namespaceUri)
getReaderContext().fireComponentRegistered(new BeanComponentDefinition(bdHolder))
doRegisterBeanDefinitions(ele)
getNamespaceURI(ele)
delegate.parseCustomElement(ele)
postProcessXml(root)
DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(doc.getDocumentElement())
loadBeanDefinitions(resource)
loadBeanDefinitions(resources)
AbstractBeanDefinitionReader.loadBeanDefinitions(configLocations)
loadBeanDefinitions(beanDefinitionReader)
AbstractXmlApplicationContext.loadBeanDefinitions(beanFactory)
AbstractRefreshableApplicationContext.refreshBeanFactory()
getBeanFactory()
2、ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory()
3、prepareBeanFactory(beanFactory)
4、postProcessBeanFactory(beanFactory)
5、invokeBeanFactoryPostProcessors(beanFactory)
6、registerBeanPostProcessors(beanFactory)
7、initMessageSource()
8、initApplicationEventMulticaster()
9、onRefresh()
10、registerListeners()
beanFactory.setTempClassLoader(null)
beanFactory.freezeConfiguration()
getMergedLocalBeanDefinition(beanName)
isFactoryBean(beanName)
getBean(FACTORY_BEAN_PREFIX + beanName)
transformedBeanName(name)
getSingleton(beanName)
isPrototypeCurrentlyInCreation(beanName)
markBeanAsCreated(beanName)
mbd.getDependsOn()
beforeSingletonCreation(beanName)
mbdToUse.prepareMethodOverrides()
this.factoryBeanInstanceCache.remove(beanName)
ctor.newInstance(args)
BeanUtils.instantiateClass(constructorToUse)
new BeanWrapperImpl(beanInstance)
initBeanWrapper(bw)
hasInstantiationAwareBeanPostProcessors()
AbstractAutowireCapableBeanFactory.getObject()
afterSingletonCreation(beanName)
AbstractBeanFactory.getBean(beanName)
DefaultListableBeanFactory.preInstantiateSingletons()
11、finishBeanFactoryInitialization(beanFactory)
12、finishRefresh()
ClassPathXmlApplicationContext.refresh()
0 条评论
回复 删除
下一页