首頁>技術>

pplicationContext是BeanFactory的子介面,也被稱為應用上下文,是另一種常用的Spring核心容器。它由org.springframework.context. ApplicationContext介面定義,不僅包含了BeanFactory的所有功能,還添加了對國際化、資源訪問、事件傳播等方面的支援。

建立ApplicationContext介面例項,通常採用兩種方法,具體如下:

1、透過ClassPathXmlApplicationContext建立

ClassPathXmlApplicationContext會從類路徑classPath中尋找指定的XML配置檔案,找到並裝載完成ApplicationContext的例項化工作。其使用語法如下:

ApplicationContext applicationContext =new ClassPathXmlApplicationContext(String configLocation);

上述程式碼中,configLocation引數用於指定Spring配置檔案的名稱和位置。如果其值為“applicationContext.xml”,則Spring會去類路徑中查詢名稱為applicationContext.xml的配置檔案。

2、透過FileSystemXmlApplicationContext建立

FileSystemXmlApplicationContext會從指定的檔案系統路徑(絕對路徑)中尋找指定的XML配置檔案,找到並裝載完成ApplicationContext的例項化工作。其使用語法如下:

ApplicationContext applicationContext =new FileSystemXmlApplicationContext(String configLocation);

與ClassPathXmlApplicationContext有所不同的是,在讀取Spring的配置檔案時,FileSystemXmlApplicationContext不再從類路徑中讀取配置檔案,而是透過引數指定配置檔案的位置,例如“D:/workspaces/applicationContext.xml”。如果在引數中寫的不是絕對路徑,那麼方法呼叫的時候,會預設用絕對路徑來找。這種採用絕對路徑的方式,會導致程式的靈活性變差,所以這個方法一般不推薦使用。

在使用Spring框架時,可以透過例項化其中任何一個類來建立ApplicationContext容器。通常在Java專案中,會採用透過ClassPathXmlApplicationContext類來例項化ApplicationContext容器的方式,而在Web專案中,ApplicationContext容器的例項化工作會交由Web伺服器來完成。Web伺服器例項化ApplicationContext容器時,通常會使用基於ContextLoaderListener實現的方式,此種方式只需要在web.xml中新增如下程式碼:

建立Spring容器後,就可以獲取Spring容器中的Bean。Spring獲取Bean的例項通常採用以下兩種方法:

● Object getBean(String name):根據容器中Bean的id或name來獲取指定的Bean,獲取之後需要進行強制型別轉換。

● T getBean(Class requiredType):根據類的型別來獲取Bean的例項。由於此方法為泛型方法,因此在獲取Bean之後不需要進行強制型別轉換。

小提示:

BeanFactory和ApplicationContext兩種容器都是透過XML配置檔案載入Bean的。二者的主要區別在於,如果Bean的某一個屬性沒有注入,使用BeanFacotry載入後,在第一次呼叫getBean()方法時會丟擲異常,而ApplicationContext則在初始化時自檢,這樣有利於檢查所依賴屬性是否注入。因此,在實際開發中,通常都優先選擇使用ApplicationContext,而只有在系統資源較少時,才考慮使用BeanFactory。

課程推薦:

18
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 5G/NR通道編碼演進及Polar Codes的推薦