configureAndRefreshWebApplicationContext

org.springframework.web.context.ContextLoader的configureAndRefreshWebApplicationContext方法中完成所有bean的解析、加载和初始化。configureAndRefreshWebApplicationContext方法:
首先,读取web.xml中定义的context-param:contextConfigLocation来找到spring的配置文件。
然后,初始化PropertySources,只要context被refreshed,wac environment的initPropertySources方法都会被调用。在这里调用initPropertySources是为了确保servlet property sources能够在fresh之前就提供给所有的post-processing或initialization使用。initPropertySources方法中使用实际的servletContextInitParams和servletConfigInitParams实例替换原来的StubPropertySource实例。
然后,在context被refresh之前调用customizeContext,利用ApplicationContextInitializer实现自定义ConfigurableWebApplicationContext的操作。ApplicationContextInitializer通过读取web.xml定义的context-param:globalInitializerClasses和context-param:contextInitializerClasses进行加载并存入ContextLoader的contextInitializers属性中,再分别调用他们的initialize方法(ConfigurableWebApplicationContext wac为参数)
最后,调用wac的refresh方法完成spring bean的加载

你可能感兴趣的:(spring学习)