天天看點

spring二:裝配bean(自動裝配)

  建立應用對象之間協作關系的行為通常稱為裝配(wiring),這就是依賴注入(DI)的本質。

  Spring提供了三種主要的裝配機制: 1. 在xml中進行顯式配置。  2. 在java中進行顯式配置。 3. 隐式的bean發現機制和自動裝配。

  bean的裝配:就是bean對象的建立,屬性指派,把建立好的對象指派給程式的過程。

          spring 從兩個角度來實作自動化裝置.1:元件掃描(component scanning),spring會自動發現應用上下文中所建立的應用。

  2. 自動裝配(autowiring) ,spring自動滿足bean之間的依賴

    如下:建立一個接口

   建立一個實作類實作上面的接口.  @Component表明這個類是一個元件類,并告知spring要為這個類建立bean。(@Named可以替換@Component,但在大多數場景中,它們可以是互相替換)

 元件掃描預設不開啟。我們需要配置下spring,讓spring尋找帶有@Component注解的類。 @ComponentScan預設掃描與配置類相同的包,也就是會掃描這個包以及這個包下的所有子包,查找帶有@Compenent注解的類。(使用XML也可以啟用自動掃描)

spring應用上下文中所有的bean都會給定一個id,通過@Component("lonelyHeartsClub"),就把lonelyHeartsClub作為bean的id了。

  在構造器上添加了@Autowired注解, 這表明當Spring建立CDPlayerbean的時候, 會通過

這個構造器來進行執行個體化并且會傳入一個可設定給CompactDisc類型的bean。

@Autowired注解不僅能夠用在構造器上,還能夠用在屬性的Setter方法上,或者其他任何方法上。(@Inject和@Autowired之間有着一些細微的差别, 但是在大多數場景下, 它們都是可以互相替換的

)

 注解@ContextConfiguration會告訴spring需要在CDPlayerConfig中加載配置。