1. 程式人生 > >spring學習筆記2——IOC

spring學習筆記2——IOC

一、IOC概述

ioc:控制反轉。控制:當前物件對內部成員的控制權。反轉:這種控制權不由當前物件管理了,由其他(類,容器)來管理。

ioc的好處:

1、不用自己組裝,拿來就用

2、享受單例好處,效率高,不佔空間

3、統一配置,便與修改

二、IOC原理

ioc其實就是一個大工廠,用來管理所有物件和他們之間的依賴關係。

  • 通過反射來獲取類的所有資訊(成員變數,方法等)。
  • 通過xml或配置檔案來描述類與類之間的關係。
  • 通過配置資訊和反射技術來構建關係。

ioc物件建立和依賴:

  1. 根據bean配置資訊在容器內部建立bean定義登錄檔。
  2. 根據登錄檔載入bean、例項化bean、建立bean與bean之間的依賴關係。
  3. 將這些準備就緒的bean放入bean緩衝池中,等待應用程式呼叫。

bean工廠的兩種方式:BeanFactory、ApplicationContext

三、bean裝配

1、bean裝配方式

  • xml配置
  • 註解
  • javaconfig

2、依賴注入方式

  • 屬性注入--通過setter()方法注入
  • 建構函式注入
  • 工廠方法注入

3、bean作用域

  • Singleton:單例模式,即該bean對應的類只有一個例項;在spring 中是scope(作用範圍)引數的預設值 。
  • prototype:表示每次從容器中取出bean時,都會生成一個新例項;相當於new出來一個物件。
  • request:基於web,表示每次接受一個HTTP請求時,都會生成一個新例項。
  • session表示在每一個session中只有一個該物件。

使用@Primary註解設定為首選的注入Bean,使用@Qualifier註解設定特定名稱的Bean來限定注入!

總結:

Spring幫助我們管理Bean分為兩個部分,一個是註冊Bean,一個裝配Bean。
完成這兩個動作有三種方式,一種是使用自動配置的方式、一種是使用JavaConfig的方式,一種就是使用XML配置的方式。
在自動配置的方式中,使用@Component去告訴Spring,我是一個bean,你要來管理我,然後使用@AutoWired註解去裝配Bean(所謂裝配,就是管理物件直接的協作關係)。然後在JavaConfig中,@Configuration其實就是告訴spring,spring容器要怎麼配置(怎麼去註冊bean,怎麼去處理bean之間的關係(裝配))。那麼久很好理解了,@Bean的意思就是,我要獲取這個bean的時候,你spring要按照這種方式去幫我獲取到這個bean。到了使用xml的方式,也是如此。<bean>標籤就是告訴spring怎麼獲取這個bean,各種<ref>就是手動的配置bean之間的關係。