美文网首页spring源码系列
2.Spring源码系列-AbstractApplication

2.Spring源码系列-AbstractApplication

作者: 小明oh | 来源:发表于2020-09-10 14:19 被阅读0次

    介绍

    此类应该是spring 容器启动的统一调度中,可以说,下面的每一行代码都是一个独立的任务链。在接下来的章节中,我会一一详细的剖析下面的每一项任务的执行过程。

    1. refresh
    //预刷新,设置容器启动时间、激活标志位
    //执行初始化上下文的环境参数(目前看到的是将servletContext和servLetConfig设置到上下文的环境propertySource中)
    prepareRefresh();
    
    //这个方法做了三件事
    //1.创建bean工厂,这里的bean工厂实例是DefaultListableBeanFactory类型
    //2.定制化bean工厂
    //3.加载定义bean的xml文件
    ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();
    
    // 配置bean工厂
    prepareBeanFactory(beanFactory);
    // 
    postProcessBeanFactory(beanFactory);
    // 执行beanFactoryProcessor
    invokeBeanFactoryPostProcessors(beanFactory);
    // 注册所有的beanPostProcessor
    registerBeanPostProcessors(beanFactory);
    // 初始化messageSource
    initMessageSource();
    // 初始化事件发布者
    initApplicationEventMulticaster();
    // 初始化主题源
    onRefresh();
    // 注册监听器
    registerListeners();
    // 1.将xml定义的bean生成实例
    // 2.完成bean之间的依赖注入关系
    // 3.调用前面定义的BeanPostProcessor
    finishBeanFactoryInitialization(beanFactory);
    // 容器加载结束后的一些收尾工作
    // 1.容器生命周期处理器lifeCycle processor的执行
    // 2.发布容器加载成功事件
    finishRefresh();

    相关文章

      网友评论

        本文标题:2.Spring源码系列-AbstractApplication

        本文链接:https://www.haomeiwen.com/subject/arryektx.html