IOC和DI

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根目錄的路徑中完成初始化工做。

相關文章
相關標籤/搜索