Spring實戰 | 第一部分 Spring的核心(第二章 裝配bean)
宣告bean
構造器注入和setter方法注入
裝配bean
控制bean的建立和銷燬
一、Spring配置的可選方案
主要的裝配機制:
1、在xml中進行顯式配置
2、在Java中進行顯式配置
3、隱式的bean發現機制和自動裝配
儘可能的用自動配置的機制。
二、自動化裝配bean
1、建立可被發現的bean
Spring從兩個角度來實現自動化裝配:
元件掃描:spring會自動發現應用上下文中所建立的bean。
自動裝配:spring自動滿足bean之間的依賴。
元件掃描和自動裝配組合在一起就能發揮出強大的威力,它們能夠將你的顯示裝配降到最低。
① 因為使用了@Component註解,所以spring會為你把事情處理妥當。
② @ComponentScan註解啟用了元件掃描
③ 通過xml啟用元件掃描
2、為元件掃描的bean命名
強烈推薦@Component命名
3、設定元件掃描的基礎包
@Configuration
@ComponentScan("soundsystem")
public class CDPlayConfig{
}
設定元件掃描的基礎包
@Configuration @ComponentScan(basePackageClasses={CDPlayer.class,DVDPlayer.class}) public class CDPlayerConfig{ }
4、通過為bean添加註解實現自動裝配
@Autowired
將required屬性設定為false時,Spring會嘗試執行自動裝配,但是如果沒有匹配的bean的話,spring將會讓這個bean處於未裝配的狀態。但是此時要進行null值檢查,否則會出現空指標異常。
@Inject註解來源於Java依賴注入規範
spring同時支援@Autowired和@Inject。
5、驗證自動裝配
三、通過Java程式碼裝配bean
當要將第三方庫中的元件裝配到程式中時,這種情況下是沒辦法加@Component和@Autowired註解的,因此不能自動化裝配。
顯式配置時,JavaConfig是更好的方案,JavaConfig是配置程式碼,JavaConfig要放到單獨的包中。
1、建立配置類
建立JavaConfig類的關鍵在於為其新增@Configuration註解,@Configuration註解表明這個類是一個配置類,該類應該包含在Spring應用上下文中如何建立bean的細節。
2、宣告簡單的bean
3、藉助JavaConfig實現注入
@Bean註解表明這個方法會建立一個bean例項並將其註冊到Spring應用上下文中。
4、通過xml裝配bean
① 建立XML配置規範
② 宣告一個簡單的bean
③ 藉助構造器注入初始化bean
④ 設定屬性
推薦構造器注入
5、匯入和混合配置
① 在JavaConfig中引用XML配置
② 在XML配置中引用JavaConfig
6、小結
Spring框架的核心是Spring容器。容器負責管理應用中元件的生命週期,它會建立這些元件並保證他們的依賴能夠得到滿足,這樣的話,元件才能完成預定的任務。在本章中,我們看到了在Spring中裝配bean的三種主要方式,這些技術描述了Spring應用中的元件以及這些元件之間的關係。
儘可能使用自動化配置,以避免顯示配置所帶來的維護成本。但是,如果你確實需要顯示配置Spring的話,應該優先選擇基於Java的配置,它比基於CML的配置更加強大、型別安全並且易於重