@Qualifier("XXX") Spring的Bean注入配置注解,該注解指定注入的Bean的名稱,Spring框架使用byName方式尋找合格的bean,這樣就消除了byType方式產生的歧義。
Spring的IoC的xml配置文件方式會讓XML文件變的比較長而且繁瑣,所以自JDK 1.5之后,越來越多的框架推出注解配置,
Spring的Bean注入就可以通過@Resource、@Autowire標記此處要注入bean,Spring框架通過反射方式給字段注入合適的對象。
@Autowire注解按照類型,即注解的字段的類型尋找該類型的實例bean,這種方式成為byType。這種方式會引發歧義,比如UserDAO整個框架可能有N多個該對象,那么Spring框架會采用一定規則尋找bean(轉換為byName尋找,失敗后報錯)
@Resource是JDK提供的注解,默認就是按照byName的方式尋找bean,一般一個name對應一個bean,當找不到與名稱匹配的bean才會按照類型裝配(byType)。
想要讓@Autowired方式按照name方式注入,可以結合@Qualifier("XX")使用,讓@Autowired按照byName方式裝配。
eg:
@Autowired @Qualifier("userDAO") private UserDAO userDao;