經過一些代碼的測試,我發現,Autowired默認先按byType,如果發現找到多個bean,則,又按照byName方式比對,如果還有多個,則報出異常。
例子:
@Autowired
private ExamUserMapper examUserMapper; - ExamUserMapper是一個接口
1. spring先找類型爲ExamUserMapper的bean
2. 如果存在且唯一,則OK;
3. 如果不唯一,在結果集裏,尋找name爲examUserMapper的bean。因爲bean的name有唯一性,所以,到這裏應該能確定是否存在滿足要求的bean了
@Autowired也可以手動指定按照byName方式注入,使用@Qualifier標籤,例如:
@Autowired
()
@Qualifier
(
"baseDao"
)