spring和springMVC容器初始化過程

spring初始化過程:
入口點是

<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

在這個監聽器中創建容器 放到ServletContext中,key是ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE = 類的全限定名.ROOT

創建容器過程:先在web.xml中看看有沒有指定的自定義容器類,有的話通過反射Class.forname創建 沒有就使用默認的容器類WebXmlApplicationContext

springMVC初始化過程:
DispatcherServlet中用了很多模版設計模式 springMVC使用策略模式完成許多功能
首先從ServletContext中獲取到由ContextLoaderListener初始化完成並放進入的根容器對象引用 需要獲取父容器即spring容器 最後也是創建XmlWebApplicationContext容器
策略模式相關:
initMultipartResolver用來處理文件上傳
initLocaleResolver用來處理國際化
initHandlerAdapters處理映射
initHandlerExceptionResolvers處理異常
initRequestToViewNameTranslator處理請求到視圖名的一個轉化
initViewResolvers處理視圖

大體來說:
DispatcherServlet繼承了 httpservletBean 和 frameWorkServlet
httpservletBean創建配置或資源文件 --》frameWorkServlet創建spring容器和springMVC容器的關聯 --》在DispatcherServlet中才進行具體功能的初始化工作

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