Web.xml配置詳解之context-param


<context-param>  
  <param-name>contextConfigLocation</param-name>  
  <param-value>contextConfigLocationValue></param-value>  
</context-param> 
<listener>  
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>

作用:該元素用來聲明應用范圍(整個WEB項目)內的上下文初始化參數 - 通常是整個項目中通用的配置bean(一般用於加載除Web層的Bean(如DAO、Service等),以便於與其他任何Web框架集成)。

param-name 設定上下文的參數名稱。必須是唯一名稱

param-value 設定的參數名稱的值,多個參數使用逗號分割。

  • 初始化過程:
    1. 在啟動Web項目時,容器(比如Tomcat)會讀web.xml配置文件中的兩個節點<listener>和<contex-param>。
    2. 接着容器會創建一個ServletContext(上下文),應用范圍內即整個WEB項目都能使用這個上下文。
    3. 接着容器會將讀取到<context-param>轉化為鍵值對,並交給ServletContext。
    4. 容器創建<listener></listener>中的類實例,即創建監聽(備注:listener定義的類可以是自定義的類但必須需要繼承ServletContextListener)。
    5. 在監聽的類中會有一個contextInitialized(ServletContextEvent event)初始化方法,在這個方法中可以通過event.getServletContext().getInitParameter("contextConfigLocation") 來得到context-param 設定的值。在這個類中還必須有一個contextDestroyed(ServletContextEvent event) 銷毀方法.用於關閉應用前釋放資源,比如說數據庫連接的關閉。
    6. 得到這個context-param的值之后,你就可以做一些操作了.注意,這個時候你的WEB項目還沒有完全啟動完成.這個動作會比所有的Servlet都要早。

 

從上圖中可以看出:

ContextLoaderListener初始化的上下文加載的Bean是對於整個應用程序共享的,不管是使用什么表現層技術,一般如DAO層、Service層Bean;

DispatcherServlet初始化的上下文加載的Bean是只對Spring Web MVC有效的Bean,如Controller、HandlerMapping、HandlerAdapter等等,該初始化上下文應該只加載Web相關組件。

由上面的初始化過程可知容器對於web.xml的加載過程是context-param >> listener  >> fileter  >> servlet

 

轉載:http://www.cnblogs.com/plxx/p/5940674.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM