1. 程式人生 > >Spring ApplicationContext 和WebApplicationContext 區別

Spring ApplicationContext 和WebApplicationContext 區別

WebApplicationContext  繼承了ApplicationContext介面,是ApplicationContext的擴充套件,它增加了WEB應用特性,還可以檢視解析、主題解析、對映,通過ServletContext與servlet關聯 ,WebApplicationContext被繫結在ServletContext上(通過ContextLoaderListener繫結),可以通過RequestContextUtils獲取WebApplicationContext。ApplicationContext 是 spring 中較高階的容器。和 BeanFactory 類似,它可以載入配置檔案中定義的 bean,將所有的 bean 集中在一起,當有請求的時候分配 bean。 另外,它增加了企業所需要的功能,比如,從屬性檔案從解析文字資訊和將事件傳遞給所指定的監聽器。這個容器在 org.springframework.context.ApplicationContext interface 介面中定義。

ApplicationContext 包含 BeanFactory 所有的功能,一般情況下,相對於 BeanFactory,ApplicationContext 會被推薦使用。BeanFactory 仍然可以在輕量級應用中使用,比如移動裝置或者基於 applet 的應用程式。
最常被使用的 ApplicationContext 介面實現:
FileSystemXmlApplicationContext:該容器從 XML 檔案中載入已被定義的 bean。在這裡,你需要提供給構造器 XML 檔案的完整路徑
ClassPathXmlApplicationContext:該容器從 XML 檔案中載入已被定義的 bean。在這裡,你不需要提供 XML 檔案的完整路徑,只需正確配置 CLASSPATH 環境變數即可,因為,容器會從 CLASSPATH 中搜索 bean 配置檔案。

WebXmlApplicationContext:該容器會在一個 web 應用程式的範圍內載入在 XML 檔案中已被定義的 bean。