2019.09.09 spring 中@Resource、@Autowired和@Qualifer三者的區別和聯繫

共同點:
裝備bean,寫在字段上,或寫在setter方法

不同點:
(1)@Resource

@Resource
CityDao citydao;

【1】 首先根據類名稱,將類名首字母小寫得到cityDao,然後去Spring的配置文件中尋找id爲cityDao的bean,即進行名稱匹配

【2】若Spring的配置文件中沒有id爲cityDao的bean,再根據類型進行匹配,在配置文件中尋找類型class爲CityDao的bean

(2)Autowired

@Autowired
CityDao cityDao;

【1】直接根據類型進行匹配,Spring會去配置文件中尋找class爲CityDao的bean,如果允許null值,可以設置它的required屬性爲false @Autowired(required=false)
【2】也可以使用名稱裝配,配合@Qualifire 註解

(3)@Qualifer

@Autowired
@Qualifer("cityDao2")
CityDao cityDao;

【1】@Qualifer不能單獨使用,否則會出現空指針錯誤
【2】需要配合@Autowired使用,會從Spring配置文件中尋找id爲cityDao2的bean,即進行名稱匹配

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