版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、往鏈點點通共享資源,了解更多請登錄上面我們分析了IOC容器本身的實現(xiàn),下面我們看看在典型的web環(huán)境中,SpringIOC容器是怎樣被載入和起作用的。簡單的說,在web容器中,通過ServletContext為Spring的IOC容器提供宿主環(huán)境,對應的建立起一個IOC容器的體系。其中,首先需要建立的是根上下文,這個上下文持有的對象可以有業(yè)務對象,數(shù)據(jù)存取對象,資源,事物管理器等各種中間層對象。在這個上下文的基礎上,和webMVC相關還
2、會有一個上下文來保存控制器之類的MVC對象,這樣就構成了一個層次化的上下文結構。在web容器中啟動Spring應用程序就是一個建立這個上下文體系的過程。Spring為web應用提供了上下文的擴展接口WebApplicationContext:Java代碼1.publicinterfaceWebApplicationContextextendsApplicationContext2.這里定義的常量用于在ServletContext中存取根
3、上下文3.StringROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE=WebApplicationContext.class.getName()“.ROOT“4.......5.對WebApplicationContext來說,需要得到Web容器的ServletContext6.ServletContextgetServletContext()7.而一般的啟動過程,Spring會使用一個默認的實現(xiàn),XmlW
4、ebApplicationContext這個上下文實現(xiàn)作為在web容器中的根上下文容器被建立起來,具體的建立過程在下面我們會詳細分析。Java代碼1.publicclassXmlWebApplicationContextextendsAbstractRefreshableWebApplicationContext2.33.if(getNamespace()!=null)34.returnnewString[]DEFAULT_CONFIG
5、_LOCATION_PREFIXgetNamespace()DEFAULT_CONFIG_LOCATION_SUFFIX35.36.else37.returnnewString[]DEFAULT_CONFIG_LOCATION38.39.40.對于一個Spring激活的web應用程序,可以通過使用Spring代碼聲明式的指定在web應用程序啟動時載入應用程序上下文(WebApplicationContext)Spring的Context
6、Loader是提供這樣性能的類,我們可以使用ContextLoaderServlet或者ContextLoaderListener的啟動時載入的Servlet來實例化SpringIOC容器為什么會有兩個不同的類來裝載它呢,這是因為它們的使用需要區(qū)別不同的Servlet容器支持的Serlvet版本。但不管是ContextLoaderSevlet還是ContextLoaderListener都使用ContextLoader來完成實際的Web
7、ApplicationContext的初始化工作。這個ContextLoder就像是SpringWeb應用程序在Web容器中的加載器booter。當然這些Servlet的具體使用我們都要借助web容器中的部署描述符來進行相關的定義。下面我們使用ContextLoaderListener作為載入器作一個詳細的分析,這個Servlet的監(jiān)聽器是根上下文被載入的地方,也是整個Springweb應用加載上下文的第一個地方;從加載過程我們可以看到
8、,首先從Servlet事件中得到ServletContext,然后可以讀到配置好的在web.xml的中的各個屬性值,然后ContextLoder實例化WebApplicationContext并完成其載入和初始化作為根上下文。當這個根上下文被載入后,它被綁定到web應用程序的ServletContext上。任何需要訪問該ApplicationContext的應用程序代碼都可以從WebApplicationContextUtils類的靜態(tài)
9、方法來得到:Java代碼1.WebApplicationContextgetWebApplicationContext(ServletContextsc)以Tomcat作為Servlet容器為例,下面是具體的步驟:1.Tomcat啟動時需要從web.xml中讀取啟動參數(shù),在web.xml中我們需要對ContextLoaderListener進行配置,對于在web應用啟動入口是在ContextLoaderListener中的初始化部分;從
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- web用戶管理系統(tǒng)源代碼
- 第19章spring的ioc
- 基于Spring Boot的源代碼在線評測系統(tǒng)的設計與實現(xiàn).pdf
- 基于web的學生綜合測評系統(tǒng)(內(nèi)含源代碼)
- 基于web的學生綜合測評系統(tǒng)(內(nèi)含源代碼)
- 基于web的學生綜合測評系統(tǒng)(內(nèi)含源代碼)
- 支持XML配置的IoC微容器設計.pdf
- netty源代碼解析(2)——客戶端流程
- 源代碼.txt
- 源代碼.rar
- 源代碼.doc
- 源代碼.doc
- 源代碼.doc
- Spring架構在Web服務中的應用研究.pdf
- 源代碼.doc
- 源代碼.doc
- 源代碼.doc
- 源代碼.txt
- 源代碼.txt
- 源代碼.doc
評論
0/150
提交評論