1. 程式人生 > 實用技巧 >10-20 Spring框架(二)—— IoC核心

10-20 Spring框架(二)—— IoC核心

一、概念

  IOC(控制反轉)就是應用本身不負責依賴物件的建立及維護,依賴物件的建立及維護是由外部的容器負責,這樣控制權就由應用轉移到外部容器,控制權的轉移就是所謂的反轉。

  控制權轉移帶來的好處就是降低了業務物件之間的依賴程度(低耦合,高內聚)

二、DI(依賴注入)

  DI(Dependency Injection,依賴注入)可以向某個物件動態的注入它所依賴的其他物件

  依賴注入的方式

    1.構造器注入

    2.方法注入

    3.介面注入
   注意:Spring的IOC容器僅支援構造器和方法注入

三、IOC容器

  Spring IOC容器是指實現IOC(控制反轉)和DI(依賴注入)概念的一個Spring元件,開發者使用IOC容器可以獲得IOC/DI帶來的降低耦合度和簡化開發的特性

  3.1Bean

    Spring 中使用 Bean 來表示應用元件,一個 Bean 元件可以是任何形式的簡單 Java 類例項,Spring 中使用 IoC 容器來管理 Bean 的生命週期(Bean 的建立和銷燬)

    

  3.2 BeanFactory(Bean工廠)

    1.BeanFactory是Spring框架最核心的介面,它提供了高階的IOC的配置機制;BeanFactory使管理不同型別的java物件成為可能。

    2.BeanFactory是Spring框架 的基礎設施,屬於底層封裝元件,專供Spring框架內部使用。

  3.3 ApplicationContext(應用上下文)

    ApplicationContext是建立zaiBeanfactory基礎之上,提供了更多的面向應用的功能。一般稱beanfactory為IOC容器,而稱ApplicationContext為應用上下文

    ApplicationContext面向Spring框架的開發者,屬於上乘封裝元件,專供開發者使用

    通過ApplicationContext應用方法上下文例項呼叫其getBean()從IOC容器中即可獲得Bean物件例項。

  3.4Spring有三種啟動IOC容器的方式

    1.classpathXMLApplicationContext(相對路徑)

      ApplicationContext ctx = new ClassPathxmlApplicationComtext(“包路徑/beans.xml”)

    2.fileSystemXMLApplicationContext(絕對路徑)

      檔案路徑/beans.xml

    3.XMLwebApplicationContext(web配置路徑)

四、裝配bean

  裝配 Bean 是指在 Spring IoC 容器中建立 Bean 元件和建立 Bean 元件之間的依賴關係的過程,即實現 IoC(控制反轉)和 DI(依賴注入)。
  Spring 支援三種裝配 Bean 的方式:

    基於 XML 配置裝配 Bean

    基於註解裝配 Bean

    基於 Java 類裝配 Bean

  4.1開啟註解

<!--Spring IoC 容器需要在 Spring 配置中開啟註解(預設禁用註解)-->
<context:annotation-config />
<!--Spring IoC 容器需要自動檢測 Bean(掃描 Java 類中 Bean 元件) -->
<context:component-scan packages=“包路徑”/>

  4.2定義Bean元件註解(ioc)

    @Component

      標識java類為Spring Bean元件(通用註解)
    @Controller
      標識三層架構中表現層的java類Spring Bean元件
    @Service
      標識三層架構中業務邏輯層的java類Spring Bean元件
    @Repository
      標識三層架構中資料訪問層或持久層的java類Spring Bean元件

  4.3Bean元件依賴注入註解

    @Autowired

      可以用於標註setter方法
      可以用於標註構造器
      可以用於直接標註屬性(常用)
    @Resource
      使用與@Autowired註解相同
    @Qualifier
      明確指定需要自動裝配的Bean元件