1、概念框架
IOC(Inversion of Control):其思想是反轉資源獲取的方向。傳統的資源查找方式要求組件向容器發起請求查找資源。做爲迴應,窗口適時的返回資源。而應用了IOC以後,則 是窗口主動地將資源推送給它所理的組件,組件所要作的僅是選擇一種合適的方式來接受資源。這種行爲也被稱爲查找的被動形式。spa
DI(Dependency Injection)——IOC的另外一種表達方式:即組件以一些預先定義好的方式(例如:setter方法)接受來自如容器的資源注入。相對於IOC而言,這種表述更直接。接口
在Spring IOC容器讀取Bean配置建立Bean實例以前,必須對它進行實例化。只有在容器實例化後,才能夠從IOC容器裏獲取Bean實例並使用。資源
Spring提供了兩種類型的IOC容器實現:開發
1.BeanFactory:IOC容器的基本實現。io
2.ApplicationContext提供了更多的高級特性,是BeanFactory的子接口。容器
3.BeanFactory是Spring框架的基礎設施,面向Spring自己;ApplicationContext面向使用Spring框架的開發者,幾乎全部的應用場合都直接使用ApplicationContext而非底層的BeanFactory基礎
4.不管使用何種方式,配置文件是相同的。擴展
2、ApplicationContext配置
ApplicationContext的主要實現類:
1.ClassPathXmlApplicationContext:從類路徑下加載配置文件
2.FileSystemXmlApplicationContext:從文件系統中加載配置文件
ConfigurableApplicationContext擴展於ApplicationContext,新增長兩個主要方法:refresh()和close(),讓ApplicationContext具備啓動、刷新和關閉上下文的能力。
ApplicationContext在初始化上下文時就實例化全部的單例的Bean。
WebApplicationContext是專門爲WEB應用而準備的,它容許從相對於WEB根目錄的路徑中完成初始化工做。