ApplicationContext

定義

ApplicationContext的中文意思是「應用先後關係」,它繼承自BeanFactory接口。服務器

特性

在ApplicationContext接口的衆多實現類中,有3個是咱們常常用到的(見表1-1),而且使用這3個實現類也基本能知足咱們Java EE應用開發中的絕大部分需求。
表1-1 ApplicationContext接口的經常使用實現類介紹
類 名 稱
功 能 描 述
ClassPathXmlApplicationContext
從類路徑ClassPath中尋找指定的XML配置文件,找到並裝載
完成ApplicationContext的實例化工做。例如:
//裝載單個配置文件實例化ApplicationContext容器
ApplicationContext cxt = new ClassPathXmlApplicationContext
("applicationContext.xml");
//裝載多個配置文件實例化ApplicationContext容器
String[] configs = {"bean1.xml","bean2.xml","bean3.xml"};
ApplicationContext cxt = new ClassPathXmlApplicationContext(configs);
FileSystemXmlApplicationContext
從指定的文件系統路徑中尋找指定的XML配置文件,找到並裝載
完成ApplicationContext的實例化工做。例如:
//裝載單個配置文件實例化ApplicationContext容器
ApplicationContext cxt = new FileSystemXMLApplicationContext
("beans.xml");
//裝載多個配置文件實例化ApplicationContext容器
String[] configs = {"c:/beans1.xml","c:/beans2.xml"};
ApplicationContext cxt = new FileSystemXmlApplicationContext(configs);
XmlWebApplicationContext
從Web應用中的尋找指定的XML配置文件,找到並裝載完成 ApplicationContext的實例化工做。這是爲Web工程量身定製的,使用WebApplicationContextUtils類的 getRequiredWebApplicationContext方法可在JSP與Servlet中取得IoC容器的引用


實現

這些實現類的主要區別就是裝載Spring配置文件實例化ApplicationContext容器的方式不一樣,在 ApplicationContext實例化後,一樣經過getBean方法從ApplicationContext容器中獲取裝配好的Bean實例以供 使用。
與BeanFactory不一樣的是,ApplicationContext容器實例化後會自動對全部的單實例 Bean進行實例化與依賴關係的裝配,使之處於待用狀態。而BeanFactory容器實例化後並不會自動實例化Bean,只有當Bean被使用時 BeanFactory容器纔會對該Bean進行實例化與依賴關係的裝配。

在Java項目中經過ClassPathXmlApplicationContext類手動實例化 ApplicationContext容器一般是不二之選。但對於Web項目就不行了,Web項目的啓動是由相應的Web服務器負責的,所以,在Web項 目中ApplicationContext容器的實例化工做最好交給Web服務器來完成。Web.xml?app

相關文章
相關標籤/搜索