Spring 容器(一)

在 Spring IOC 容器讀取 Bean 配置創建 Bean 實例之前, 必須對它進行實例化. 只有在容器實例化後, 纔可以從 IOC 容器裏獲取 Bean 實例並使用.

一、Spring 提供了兩種類型的 IOC 容器實現. 

        -BeanFactory: IOC 容器的基本實現.

        -ApplicationContext: 提供了更多的高級特性. 是 BeanFactory 的子接口

        -BeanFactory 是 Spring 框架的基礎設施,面向 Spring 本身;ApplicationContext 面向使用 Spring 框架的開發者,幾乎所有的應用場合都直接使用 ApplicationContext 而非底層的 BeanFactory

        -無論使用何種方式, 配置文件時相同的.

二、ApplicationContext代表容器

ApplicationContext 的主要實現類:
        ClassPathXmlApplicationContext:從 類路徑下加載配置文件
        FileSystemXmlApplicationContext: 從文件系統中加載配置文件
ConfigurableApplicationContext 擴展於 ApplicationContext,新增加兩個主要方法:refresh() 和 close(), 讓         ApplicationContext 具有啓動、刷新和關閉上下文的能力
        ApplicationContext 在初始化上下文時就實例化所有單例的 Bean。

        WebApplicationContext 是專門爲 WEB 應用而準備的,它允許從相對於 WEB 根目錄的路徑中完成初始化工作



三、從 IOC 容器中獲取 Bean的方法


註釋:如果是通過id來注入的話,需要傳入bean的id,如果傳入的是類型,就要求容器中只能有一個該類型的bean


四、依賴注入的方式

Spring 支持 3 種依賴注入的方式

    屬性注入
    構造器注入

    工廠方法注入(很少使用,不推薦)

    1、屬性注入

    屬性注入即通過 setter 方法注入Bean 的屬性值或依賴的對象

屬性注入使用 <property> 元素, 使用 name 屬性指定 Bean 的屬性名稱,value 屬性或 <value> 子節點指定屬性值 屬性注入是實際應用中最常用的注入方式


  2、構造方法注入

        通過構造方法注入Bean 的屬性值或依賴的對象,它保證了 Bean 實例在實例化後就可以使用。

構造器注入在 <constructor-arg> 元素裏聲明屬性, <constructor-arg> 中沒有 name 屬性

    按索引匹配入參:

    

    按類型匹配入參:

    


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章