1. 程式人生 > >@ Autowired和@Resource的區別

@ Autowired和@Resource的區別

一. @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屬性一旦指定,就只會按照名稱進行裝配。