SpringMVC中的ContextLoaderListener設計困惑

最近在學習Spring MVC原理相關部分,就按順序從ContextLoaderListener來看,可是我在閱讀此類的設計中,遇到了些困惑的地方,現紀錄以下,但願能遇到高手能幫我答疑解惑: java

ContextLoaderListener 類的定義: 學習

public class ContextLoaderListener extends ContextLoader implements ServletContextListener {
	private ContextLoader contextLoader;
	public ContextLoaderListener() {
	}

	public ContextLoaderListener(WebApplicationContext context) {
		super(context);
	}

	public void contextInitialized(ServletContextEvent event) {
		this.contextLoader = createContextLoader();
		if (this.contextLoader == null) {
			this.contextLoader = this;
		}
		this.contextLoader.initWebApplicationContext(event.getServletContext());
	}

	@Deprecated
	protected ContextLoader createContextLoader() {
		return null;
	}

	@Deprecated
	public ContextLoader getContextLoader() {
		return this.contextLoader;
	}

	public void contextDestroyed(ServletContextEvent event) {
		if (this.contextLoader != null) {
			this.contextLoader.closeWebApplicationContext(event.getServletContext());
		}
		ContextCleanupListener.cleanupAttributes(event.getServletContext());
	}

}



困惑一:

ContextLoaderListener類已經繼承了ContextLoader,爲什麼又聲明瞭一個私有的ContextLoader類的 對象屬性contextLoader?而這個 contextLoader 在上下文的 意義愚覺得僅僅是顯示的說明 contextLoader 其實就是"this"。(我仿照ContextLoaderListener寫了個去掉contextLoader屬性的類,容器正常啓動 this

困惑二: spa

ContextLoaderListener doc註釋爲: .net

Bootstrap listener to start up and shut down Spring's root {@link WebApplicationContext}...

Spring's root {@link WebApplicationContext},能夠翻譯爲Spring的 頂級/根 WebApplicationContext嗎?那是否有非root的呢? 翻譯

也許我比較愚鈍沒能發現其中的奧祕,也可能我比較較真,非要打破沙鍋問到底,思考了許久,還但願大牛能幫我答疑解惑。 設計

相關文章
相關標籤/搜索