1. 程式人生 > >Spring實戰 | 第一部分 Spring的核心(第二章 裝配bean)

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的配置更加強大、型別安全並且易於重