Spring與SpringMVC父子容器詳解

     Spring和SpringMVC的容器具有父子關係,Spring容器爲父容器,SpringMVC爲子容器,子容器可以引用父容器中的Bean,而父容器不可以引用子容器中的Bean。

1.  Spring父容器配置

2. Spring MVC子容器配置

3. Spring父容器(ioc)初始化過程

(1)、web應用程序啓動時,tomcat會讀取web.xml文件中的context-parm(含有配置文件的路徑)和listener節點,接着會爲應用程序創建一個ServletContext,爲全局共享,Spring ioc容器就是存儲在這裏

(2)、tomcat將context-param節點轉換爲鍵值對,寫入到ServletContext中

(3)、創建listener節點中的ContextLoaderListener實例,調用該實例,初始化webapplicationContext,這是一個接口,其實現類爲XmlWebApplicationContext(即spring的IOC容器),其通過ServletContext.getinitialParameter("contextConfigLoaction")從ServletContext中獲取context-param中的值(即spring ioc容器配置文件的路徑)。然後根據配置文件的路徑加載配置文件信息(其中含有Bean的配置信息)到WebApplicationContext(即spring ioc容器)中,將WebApplicationContext以WebApplicationContext.ROOTWEBAPPLICATIONCONTEXTATTRIBUTE爲屬性Key,將其存儲到ServletContext中,便於獲取。至此,spring ioc容器初始化完畢

(4)、容器初始化web.xml中配置的servlet,爲其初始化自己的上下文信息servletContext,並加載其設置的配置信息到該上下文中。將WebApplicationContext(即spring ioc容器)設置爲它的父容器。其中便有SpringMVC(假設配置了SpringMVC),這就是爲什麼spring ioc是springmvc ioc的父容器的原因

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章