1、@Autowired與@Resource都可以用來(lái)裝配bean. 都可以寫在字段上,或?qū)懺趕etter方法上压彭。
2、@Autowired默認(rèn)按類型裝配(這個(gè)注解屬于Spring)辱匿,默認(rèn)情況下必須要求依賴對(duì)象必須存在灶泵,如果要允許null 值,可以設(shè)置它的required屬性為false补箍,如:@Autowired(required=false) 改执,如果我們想使用名稱裝配可以結(jié)合@Qualifier注解進(jìn)行使用,如下:
@Autowired() @Qualifier("baseDao")? ?
private BaseDao baseDao;? ?
3坑雅、@Resource(這個(gè)注解屬于J2EE)辈挂,默認(rèn)按照名稱進(jìn)行裝配,名稱可以通過(guò)name屬性進(jìn)行指定裹粤,
如果沒有指定name屬性终蒂,當(dāng)注解寫在字段上時(shí),默認(rèn)取字段名進(jìn)行按照名稱查找遥诉,如果注解寫在setter方法上默認(rèn)取屬性名進(jìn)行裝配拇泣。 當(dāng)找不到與名稱匹配的bean時(shí)才按照類型進(jìn)行裝配。但是需要注意的是矮锈,如果name屬性一旦指定挫酿,就只會(huì)按照名稱進(jìn)行裝配。
@Resource(name="baseDao")? ?
private BaseDao baseDao;? ?
我喜歡用 @Resource注解在字段上愕难,且這個(gè)注解是屬于J2EE的早龟,減少了與spring的耦合。最重要的這樣代碼看起就比較優(yōu)雅猫缭。