spring启动流程
2017-03-13 13:16:49 0 举报
spring启动流程图
作者其他创作
大纲/内容
initMessageSource()加载国际化文件???
切入spring中initWebApplicationContext
BeanFactory
BeanDefineReader
prepareRefresh():准备工作,如:
spring生命周期-模板方法:refresh()
resolveBeforeInstantiatioresolveBeforeInstantiation
finishBeanFactoryInitialization()创建non-lazy-init的bean
initApplicationEventMulticaster()初始化事件体系
finishRefresh():1:完成context refresh
第二次机会:FactoryBean创建Bean
registerListeners()注册事件体系中的listeners
registerBeanPostProcessors()根据BeanPostProcessor接口,创建并注册到BeanFactory中
tomcat
创建:new()
创建BeanFactory
BeanPostPresessor
第一次机会:创建Bean调用实现了InstantiationAwareBeanPostProcessor接口的PostPrecessor,创建Bean
第三次机会:普通方式创建Bean
onRefresh()留给子类特殊需求
postProcessBeanFactory()如:创建特殊的BeanFactoryPostProcessors
invokeBeanFactoryPostProcessors()调用BeanFactoryPostProcessors,可以对BeanFactory配置或方法做修改---根据BeanFactoryPostProcessor接口创建对应的Bean并调用
spring 启动及简易流程(web-tomcat)
BeanDefineParser
启动tomcat
创建web.xm中配置的ContextLoaderListener
ApplicationContext
Start
BeanDefine
ContextLoaderListener
创建BeanPostPrecessor
prepareBeanFactory()beanFactory预处理
收藏
收藏
0 条评论
下一页