Spring ApplicationContext refresh()

  • Post author:
  • Post category:其他




Spring ApplicationContext refresh()源码分析

  • AbstractApplicationContext 的refresh()

    • prepareRefresh();//Context刷新
    • ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();// 这个是一个将BeanFactoy的加载的过程,这个方法执行完毕后,所有的定义的BeanDefinition和其他的对象都会被加载到当前
    • prepareBeanFactory(beanFactory);//对Bean Factory一些信息配置(setBeanClassLoader addBeanPostProcessor(后置处理器)等)
    • postProcessBeanFactory(beanFactory);//允许在上下文子类中对bean工厂进行后处理
    • invokeBeanFactoryPostProcessors(beanFactory);//触发后置处理器
    • registerBeanPostProcessors(beanFactory);//注册拦截bean创建的后置处理器
    • protected void initMessageSource()//初始化MesageSource 国际化
    • initApplicationEventMulticaster();//初始化事件广播
    • onRefresh()//这个方法是一个模板方法,是交给子类来扩展的
    • registerListeners();//注册所有的Listener
    • finishBeanFactoryInitialization(beanFactory);//实例化所有的非延迟加载的单例Bean对象
    • finishRefresh();//发布相关的事件
    • resetCommonCaches()//清空盖清空的cache



版权声明:本文为mengml_smile原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。