這篇文章主要介紹如何通過@Resource注解實(shí)現(xiàn)屬性裝配代碼,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
目前創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、韶關(guān)網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。使用Field注入(用于注解方式):注入依賴對(duì)象可以采用手工裝配或者手工自動(dòng)裝配。在實(shí)際應(yīng)用中建議使用手工裝配,因?yàn)樽詣?dòng)裝配會(huì)產(chǎn)生未知情況,開發(fā)人員無法預(yù)見最終的裝配結(jié)果。
依賴注入—手工裝配
手工裝配依賴對(duì)象,在這種方式中又有兩種編程方式。
1.在xml配置文件中,通過bean節(jié)點(diǎn)配置,如:
//構(gòu)造器注入 //屬setter方法注入
2.在java代碼中使用@Autowired或者@Resource注解方式進(jìn)行裝配。但我們需要在xml配置文件中配置一下信息
這個(gè)配置隱式注冊(cè)了多個(gè)對(duì)注釋進(jìn)行解析處理的處理器:
AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor
PersistenceAnnotationBeanProcessor,RequiredAnnotationBeanPostProcessor
3.區(qū)別
在java代碼中使用@Autowired或@Resource注解方式進(jìn)行裝配。這兩個(gè)注解的區(qū)別是@Autowired默認(rèn)按類型裝配@Resource默認(rèn)按名稱進(jìn)行裝配,當(dāng)找不到與名稱匹配的bean才會(huì)按類型裝配
@Autowired private PersonDao personDao;//用于字段上 @Autowired public void setOrderDao(OrderDao orderDao){ this.orderDao = orderDao; //用于屬性的setter方法上 }
@Autowired注解是按類型裝配依賴對(duì)象,默認(rèn)情況下它要求依賴對(duì)象必須存在,如果允許null值,可以設(shè)置它required屬性為false;如果我們想使用名稱裝配,可以結(jié)合@Qualfier注解一起使用,如下:
@Autowired@Qualifier("personDao") private PersonDao personDao;
@Resource注解和@Autowired一樣,可以標(biāo)注在字段或者屬性的setter方法上,但它默認(rèn)按名稱裝配。名稱可以通過@Resource的name屬性指定;如果沒有指定name屬性,當(dāng)注解標(biāo)注在字段上,即默認(rèn)字段的名稱作為bean名稱尋找依賴對(duì)象;當(dāng)注解標(biāo)注在屬性setter方法上,即默認(rèn)取屬性名作為bean名稱尋找依賴對(duì)象
@Resource(name="personDaoBean") private PersonDao personDao;
注:如果沒有指定name屬性,并且按照默認(rèn)的名稱仍找不到對(duì)象時(shí),@Resource注解會(huì)回退到按類型裝配。但一旦指定了name屬性,就只能按名稱裝配了。
以上是“如何通過@Resource注解實(shí)現(xiàn)屬性裝配代碼”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!