編程介紹
@Qualifier,在使用Spring框架中@Autowired標籤時默認情況下使用 @Autowired 注釋進行自動注入時,Spring 容器中匹配的候選 Bean 數目必須有且僅有一個。
註解
在使用Spring框架中@Autowired標籤時默認情況下使用 @Autowired 注釋進行自動注入時,Spring 容器中匹配的候選 Bean 數目必須有且僅有一個。當找不到一個匹配的 Bean 時,Spring 容器將拋BeanCreationException 異常,並指出必須至少擁有一個匹配的 Bean。
Spring 允許我們通過 @Qualifier 注釋指定注入 Bean 的名稱,這樣歧義就消除了,可以通過下面的方法解決異常。
意義
@Qualifier("XXX") 中的 XX是 Bean 的名稱,所以 @Autowired 和 @Qualifier 結合使用時,自動注入的策略就從 byType 轉變成 byName 了。
@Autowired 可以對成員變數、方法以及構造函式進行注釋,而 @Qualifier 的標註對象是成員變數、方法入參、構造函式入參。
示例
配合autowired使用:
@Autowired
@Qualifier("userService")
public IUserService userService;