@AuotoWired+@Qualifier(百度百科)

Spring框架中進行注入式,使用@Autowired.
@Autowired可以對成員變量、方法和構造函數進行標註,來完成自動裝配的工作,這裏必須明確:@Autowired是根據類型進行自動裝配的,如果需要按名稱進行裝配,則需要配合@Qualifier[1]使用;
@Autowired標註可以放在成員變量上,也可以放在成員變量的set方法上。前者,Spring會直接將UserDao類型的唯一一個bean賦值給userDao這個成員變量;後者,Spring會調用setUserDao方法來將UserDao類型的唯一一個bean裝配到userDao這個屬性。
------------------------------------------------------------------@Qualifier--------------------------------------------------------------------------------------------------
在使用Spring框架中@Autowired標籤時默認情況下使用 @Autowired 註釋進行自動注入時,Spring 容器中匹配的候選 Bean 數目必須有且僅有一個。當找不到一個匹配的 Bean 時,Spring 容器將拋出
BeanCreationException 異常,並指出必須至少擁有一個匹配的 Bean。
Spring 允許我們通過 @Qualifier 註釋指定注入 Bean 的名稱,這樣歧義就消除了,可以通過下面的方法解決異常。
@Qualifier("XXX") 中的 XX是 Bean 的名稱,所以 @Autowired 和 @Qualifier 結合使用時,自動注入的策略就從 byType 轉變成 byName 了。
@Autowired 可以對成員變量、方法以及構造函數進行註釋,而 @Qualifier 的標註對象是成員變量、方法入參、構造函數入參。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章