spring學習筆記2——IOC
阿新 • • 發佈:2019-02-02
一、IOC概述
ioc:控制反轉。控制:當前物件對內部成員的控制權。反轉:這種控制權不由當前物件管理了,由其他(類,容器)來管理。
ioc的好處:
1、不用自己組裝,拿來就用
2、享受單例好處,效率高,不佔空間
3、統一配置,便與修改
二、IOC原理
ioc其實就是一個大工廠,用來管理所有物件和他們之間的依賴關係。
- 通過反射來獲取類的所有資訊(成員變數,方法等)。
- 通過xml或配置檔案來描述類與類之間的關係。
- 通過配置資訊和反射技術來構建關係。
ioc物件建立和依賴:
- 根據bean配置資訊在容器內部建立bean定義登錄檔。
- 根據登錄檔載入bean、例項化bean、建立bean與bean之間的依賴關係。
- 將這些準備就緒的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之間的關係。