Spring IOC容器概念及分類
什麼是Spirng IOC容器?
spring容器是spring框架的核心,容器建立物件並且把它們連線在一起,並管理它們的生命週期。說白了就是之前的Java應用程式中的物件是程式設計師new出來的,現在不用我們new了,交給spring容器去管理了。
Spring IOC容器如何管理物件?
使用依賴注入(DI)來管理組成一個應用程式的元件。依賴注入就是控制反轉(IOC)的一個具體例子。
【注】這樣子去理解IOC/DI的關係:他們是對同一個事情的不同描述。依賴注入是站在應用程式的角度在描述整個過程,而控制反轉是從容器的角度在描述。
Spring IOC如何工作?
Spring IoC 容器利用 Java 的 POJO 類和配置後設資料來生成完全配置和可執行的系統或應用程式。如下圖:
Spring 框架提供的容器:
1. Spring BeanFactory容器:最簡單的容器,給DI提供了基本的支援。移動裝置中為了節省有限的資源,會被優先選擇,即主要用於輕量級應用。其用org.springframework.beans.factory.BeanFactory介面來定義。其中 org : 表示這是一個開源包,因為apache是一個非盈利組織,所以產品一般以org開頭;springframework : spring框架 。
2. Spring ApplicationContext容器:在Spring BeanFactory容器的基礎上,新增了更多企業特定的功能,也就是比BeanFactory更加優秀更加牛逼了。其用org.springframework.context.ApplicationContext介面來定義。較BeanFactory而言,可以載入配置檔案中定義的bean,將所有bean集中在一起,有請求的時候分配bean。
Spring IOC容器的使用:
1. BeanFactory容器的使用:
public static void main(String[] args){
//ClassPathResource載入在路徑CLASSPATH下可用的xml配置檔案
//XmlBeanFactory負責建立並初始化所有物件即xml檔案中的bean
XmlFactory factory = new XmlBeanFactory(new ClassPathResource(" .xml"));
類名 物件名 =(類名)factory.getBean(" ");
}
2. ApplicationContext 容器的使用:
public static void main(String[] args){
//ApplicationContext介面的實現類有很多種,這裡使用ClassPathXmlApplicationContext
ApplicationContext app = new ClassPathXmlApplicationContext(" .xml");
類名 物件名 =(類名)app.getBean(" ");
}
由以上的程式碼順序可知,關於spring容器管理物件的方法和過程我們可以理解成:在載入xml檔案的時候,這個類幫我們將xml檔案中的<bean>標籤進行了解析(其實每一個<bean>標籤片面點兒說都對應著一個物件,模板bean除外),這樣子spring容器就和我們所說的物件聯絡了起來,spring容器也是一個類,在Java中很多“高大上”的名字其實都是對應一個類,只不過名字是根據這個類所做的事情或者它在程式中的身份取的。
相關文章
- Spring框架IOC容器Spring框架
- Spring的IOC容器Spring
- Spring--IOC容器Spring
- 淺析 Spring 的IOC容器Spring
- 對Spring IOC容器的思考Spring
- 深入理解Spring IOC容器Spring
- Spring IOC 一——Spring容器裝配BeanSpringBean
- Spring5原始碼解析系列一——IoC容器核心類圖Spring原始碼
- 手寫Spring---IOC容器(1)Spring
- Spring IOC容器實現機制Spring
- Spring IoC 容器的擴充套件Spring套件
- Spring IOC 容器為什麼不使用 Class.forName 載入類Spring
- Spring原始碼分析:Spring IOC容器初始化Spring原始碼
- Spring原始碼閱讀-IoC容器解析Spring原始碼
- spring原始碼解析之IOC容器(一)Spring原始碼
- Spring IOC容器核心流程原始碼分析Spring原始碼
- 2、Spring使用+ioc容器配置使用1Spring
- 從原始碼看Spring中IOC容器的實現(二):IOC容器的初始化原始碼Spring
- Spring IOC容器的設計與實現Spring
- Spring 原始碼 (2)Spring IOC 容器 前戲準備工作Spring原始碼
- IoC 容器
- IOC容器
- Spring IOC 容器預啟動流程原始碼探析Spring原始碼
- spring ioc原理-容器初始化的大致流程Spring
- Spring核心原理之IoC容器初體驗(2)Spring
- 深入理解Spring IOC容器及擴充套件Spring套件
- 如何向Spring IOC 容器 動態註冊beanSpringBean
- 設計模式(三十一)----綜合應用-自定義Spring框架-自定義Spring IOC-定義解析器、IOC容器相關類設計模式Spring框架
- Spring原始碼剖析3:Spring IOC容器的載入過程Spring原始碼
- 一分鐘玩轉 Spring IoC!Spring
- 一分鐘玩轉 Spring IoCSpring
- Spring IoC容器初始化 — Resource定位原始碼分析Spring原始碼
- Spring(十二):IOC容器中Bean的生命週期方法SpringBean
- Spring實現IOC容器的兩種實現方式Spring
- spring原始碼解析之IOC容器(四)——屬性注入Spring原始碼
- spring原始碼解析之IOC容器(三)——依賴注入Spring原始碼依賴注入
- Spring_Mybatis整合 註解配置類與xml配置檔案兩種方式分析及初始化IOC容器與監聽獲取取IOC容器SpringMyBatisXML
- spring-IOC容器原始碼分析(二)BeanDefinition註冊流程Spring原始碼Bean