spring web初始化context

     平常我们分析spring源码,一般都是通过XmlBeanFactory。来分析context的初始化。那么web项目中,又是怎么初始化context的呢?

    web项目中,我们通常都是如下图,通过listen监听完成初始化。

具体怎么怎么完成的呢,打开ContextLoaderListener


web中的listener会通过钩子执行contextInitialized(ServletContextEvent event) ,继续跟代码到父类的initWebApplicationContext方法
注意红圈的方法。得到了context对象,跟进去看看怎么得到的。
很清楚可以看到,得到class,然后通过反射得到对象。注意红圈得到class的方法,跟进去。
我们可以在web.xml里面指定contextClass,如果不指定,会去拿默认的,这个地方,需要看ContectLoader的static代码块,是怎么加载contextClassName.
到了这里应该明白了,加载当前类同一目录下的ContextLoader.properties。
这就是最终初始化的context。

你可能感兴趣的:(spring web初始化context)