@ Autowired和@Resource的區別
阿新 • • 發佈:2018-12-31
一. @Autowired (Spring中的註解)
1.它預設是按照型別進行匹配的,預設情況下必須要求依賴物件必須存在,如果要允許null 值,可以設定它的required屬性為false;
如:
@Autowired(required=false) ;
private BaseDao baseDao
2.如需要按照名稱進行裝配,則需要配合@Qualifier使用;
如:
@Autowired @Qualifier("baseDao")
private BaseDao baseDao
3.可以對成員變數、方法和建構函式進行標註,來完成自動裝配的工作
二. @Resource(這個註解屬於J2EE的),
1. 預設安照名稱進行裝配,名稱可以通過name屬性進行指定,
如:
@Resource(name="baseDao") private BaseDao baseDao;
2.如果沒有指定name屬性,當註解寫在欄位上時,預設取欄位名進行按照名稱查詢,如果註解寫在setter方法上預設取屬性名進行裝配。
3.當找不到與名稱匹配的bean時才按照型別進行裝配。但是需要注意的是,如果name屬性一旦指定,就只會按照名稱進行裝配。