- web应用需要部署在一个web容器中,web容器为其提供一个全局的上下文环境,这个上下文就是servletContext,作为spring IOC的宿主容器。
- web.xml中会提供一个contextLoaderListener,在web容器启动时,会执行初始化,当监听到启动事件,会执行contextInitialized方法,在这个方法中,spring初始化上下文,称之为根上下文,为webApplicationContext,这是一个接口,实现类有xmlwebApplicationContext,这个就是spring的IOC容器。对应的配置在web.xml中的context-param标签,使用如下:
-
ServletContext.getInitParameter("context-param配置的key");//会得到配置的value。
- 之后再初始化web.xml中配置的servlet,以DispatcherServlet为主,是一个前端控制器,转发匹配处理每个servlet请求,webApplicationContext为其父容器,可以获得父容器中的bean,但父容器无法获得子容器的bean。之后如果还有servlet,初始化同该容器,均以webApplicationContext为父容器。