在一中我们提到了 createApplicationContext();但是只是没有详细的分析。
    
    代码中可以发现 通过:
    
    BeanUtils.instantiateClass(contextClass) 创建了实例,但是具体到底创建了什么实例,这里选择了 web环境下的
    
    AnnotationConfigServletWebServerApplicationContext 进行初步的解析:
   
public AnnotationConfigServletWebServerApplicationContext() {
		this.reader = new AnnotatedBeanDefinitionReader(this);
		this.scanner = new ClassPathBeanDefinitionScanner(this);
	}
    简单的粘贴了一下构造函数,这里创建的 render跟 scanner在后边有机会再分享,这里想分享的是,
    
    AnnotationConfigServletWebServerApplicationContext 自创建的时候,其父类 都创建可什么,因此,重点看下AnnotationConfigServletWebServerApplicationContext的类图
   
    不出意料,有事一张蜘蛛网,重点分析 集成的类,看下在创建的过程中都干了什么:
    
    ServletWebServerApplicationContext 啥都没干,继续看父类:
    
    GenericWebApplicationContext 啥都没干,继续:
    
    GenericApplicationContext 这里干事了:
   
public GenericApplicationContext() {
		this.beanFactory = new DefaultListableBeanFactory();
	} 
这里可以看见,给上下文的bean工厂进行了实例化:关于DefaultListableBeanFactory的大值分析在另一篇文章中:
分析到这,结束。
    createApplicationContext();
    
    做了三件事:
    
    1.创建new AnnotatedBeanDefinitionReader(this);
    
    2.创建new ClassPathBeanDefinitionScanner(this);
    
    3.创建 new DefaultListableBeanFactory();
    
    这也就是容器初始化做的三件事,到目前为止,只做了这三件事。
   
慢慢往下梳理,不着急
 
