Spring這樣自動裝配bean(二)

Spring 的自動裝配就是讓Spring 自動滿足bean依賴的一種方法,在滿足依賴的過程中,會在Spring應用上下文總尋找匹配滿足某個bean需求條件的其他bean。在Spring中使用@Autowired註解實現自動裝配的功能。

@Autowired 註解:不僅可以用在構造器上,還能用在屬性的Setter方法上,可以用到屬性上,還可以用到其他方法上,Spring會嘗試滿足方法參數上所生命的依賴。

使用@Autowired,掃描到Spring 只有一個bean匹配依賴的需求的話,這個bean將裝配進來;

如果沒有匹配Bean的話,那麼會在創建的時候(服務啟動的時候),Spring會拋出一個異常。為了啟動時候拋出異常,可以將@Autowired 的required的屬性設值為FALSE。(@Autowired(required=false));

Advertisements

如果有多個bean能夠滿足依賴的話,Spring 會拋出一個異常,表明沒有明確指定選擇哪一個bean來進行自動裝配。

當發生歧義性的時候,可以將Bean 中的某一個設值為首選(primary)的bean,或者使用限定(qualifier)來幫助Spring將可選的bean的範圍縮小到只有一個bean。

寫法如下:

@Component

@Primary

public class XXX implements AAA{

...............................

}

但是有時候有多個標有@Primary 的bean時候,又會拋出異常,此時就可使用@Qualifier註解,將範圍縮小到指定Bean上。

Advertisements

寫法如下:

@Component

@Qualifier(自定義限定符)

public class AAA implements XXX{

........................................

}

由於@Autowired 是Spring特有的註解,如果代碼中不用Spring特定註解完成自動裝配的話,可以使用@Inject 註解(此註解源於Java依賴注入規範),這兩個註解在大多數場合中,是可以互換的。

Advertisements

你可能會喜歡