個人學習Spring In Action學習筆記系列 (二)
源碼地址 https://github.com/spring-projects/spring-framework
U2 基本的Bean裝配
在Spring中,組件無須自己負責與其他組件的關聯,容器負責把協作組件的引用給予各個組件。例如,訂單管理組件需要一個信用卡驗證器,但是它沒有必要創建信用卡驗證器。
創建系統組件之間的協作關係的這個動作是DI的關鍵,通常被稱之爲裝配
2.1 容納你的Bean
容器可以創建組件,裝配和配置組件,以及管理他們的整個生命週期(從new到finalize)
容器是Spring框架的核心,使用DI管理所有組成應用系統的組件。Spring提供了多種容器實現,並分爲兩類。Bean工廠是最簡單的容器,提供了基礎的依賴注入支持。應用上下文ApplicationContext建立在Bean工廠基礎之上,提供了系統構架服務。
BeanFactory介紹
Bean工廠採用了工廠設計模式,這個類負責創建和分發Bean。Bean工廠還可以在實例化這些對象的時候,創建協作對象間的關聯關係。
ApplicationContext繼承了BeanFactory,擁有了基本的IOC功能
2.2 Bean的生命
Spring應用上下文的生命週期與Bean工廠只有一點不同,調用了setApplicationContext()方法
創建Bean
需要一些執行者,定義爲Performer接口
聲明一個簡單的Bean,第一個參與這是Juggle
在Juggle類中定義了第一個參與者Duke,可以在XML中聲明
通過構造函數注入
構造器函數注入是保證Bean在使用之前被完整配置的最安全方法,但是它不能配置複雜的內容
2.3 注入Bean的屬性
通常Bean提供一對函數用來訪問屬性 setXXX() 和 getXXX(),通過Setter注入,利用setter方法的屬性來配置屬性值
2.3.1 注入簡單的數值
2.3.2 使用其他的Bean
注入內部Bean
2.3.3 裝配集合
2.4 自動裝配
2.5 控制Bean創建
2.5.1 Bean範圍化
2.5.2 利用工廠方法來創建Bean
靜態工廠方法創建一個單例實例
2.5.3 初始化和銷燬Bean