Spring容器

  容器是Spring框架的核心,Spring容器就是一個巨大的工廠。Spring容器使用Ioc管理所有組成應用系統的組件。

  Spring容器會使用XML解析器讀取改屬性值,並利用反射來創建該實現類的實例。

 

  Spring有兩個核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。它們都可以代表Spring容器。Spring容器是生成Bean實例的工廠,並管理容器中的Bean。Bean是Spring管理的基本單元。

 

  創建BeanFactory實例時,必須使用Spring容器管理的Bean詳細配置信息(XML配置文件)。XML配置文件通常使用Resource對象傳入。
Resource接口是Spring提供的資源訪問接口,通過使用該接口,Spring能以簡單,透明的方式訪問子盤,類路徑,已經網絡上的資源。

大部分Java EE應用,在啓動Web應用時自動加載Application實例。對於獨立的應用程序,可通過如下方法來實例化BeanFactory。
1.
 //搜索當前文件路徑下的beans.xml文件,創建Resource對象
 InputStreamResource isr = new FileSystemResource("beans.xml");
 //以Resource對象作爲參數,創建BeanFactory實例
 XmlBeanFactory factory = new XmlBeanFactory(isr);
2.
 //搜索類加載路徑,以類加載路徑下的beans.xml文件創建Resource對象
 ClassPathResource res = new ClassPathResource("beans.xml");
 //以Resource對象爲參數,創建BeanFactory實例
 XmlBeanFactory factory = new XmlBeanFactory(res);

 

ApplicationContext允許以聲明式方式操作容器,無需手動創建它。可利用如ContextLoader得支持類,在Web應用啓動時自動創建ApplicationContext。當然,也可以採用編程方式創建ApplicationContext.
除了提供BeanFactory所支持的全部功能外,ApplicationContext還有如下額外功能:
1.ApplicationContext繼承MessageSource接口,因此提供國際化支持。
2.資源訪問,比如URL和文件
3.事件機制
4.載入多個配置文件。

 

ApplicationContext經常用到的三個實現:

1.ClassPathXmlApplicationContext:從類路徑中的XML文件載入上下文定義信息。把上下文定義文件當成類路徑資源。

2.FileSystemXmlApplicationContext:從文件系統中的XML文件載入上下文定義信息。

3.XmlWebApplicationContext:從Web系統中的XML文件載入上下文定義信息。

 

BeanFactory延遲加載所有的Bean,知道getBean()方法被調用時,Bean才被創建。

當系統創建ApplicationContext容器時,默認會預初始化所有singleton Bean (prototype類型Bean當需要的時候纔會創建)。


發佈了23 篇原創文章 · 獲贊 18 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章