国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > Java > 正文

通過(guò)@Resource注解實(shí)現(xiàn)屬性裝配代碼詳解

2024-07-13 10:16:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文主要探究的問(wèn)題時(shí)使用@Resource注解實(shí)現(xiàn)屬性裝配,當(dāng)中涉及依賴注入—手工裝配,@Autowired和@Resource注解的區(qū)別等相關(guān)內(nèi)容,具體如下。

使用Field注入(用于注解方式):注入依賴對(duì)象可以采用手工裝配或者手工自動(dòng)裝配。在實(shí)際應(yīng)用中建議使用手工裝配,因?yàn)樽詣?dòng)裝配會(huì)產(chǎn)生未知情況,開(kāi)發(fā)人員無(wú)法預(yù)見(jiàn)最終的裝配結(jié)果。

依賴注入—手工裝配

手工裝配依賴對(duì)象,在這種方式中又有兩種編程方式。

1.在xml配置文件中,通過(guò)bean節(jié)點(diǎn)配置,如:

<bean id="orderService" class="cn.itcast.service.OrderServiceBean">  //構(gòu)造器注入  <constructor-arg index="0" type="java.lang.String" value="xxx"/>  //屬setter方法注入  <property name="name" value="zhao"/></bean>

2.在java代碼中使用@Autowired或者@Resource注解方式進(jìn)行裝配。但我們需要在xml配置文件中配置一下信息

<beans Xmlns="http://www.springframework.org/schema/beans"       Xmlns="http://www.w3.org/2001/XMLSchema-instance"       Xmlns:context="http://www.springframework.org/schema/context"       Xsi:schemaLocation="http://www.springframework.org/schema/beans             http://www.springframework.org/schema/context             http://www.springframework.org/schema/context/spring-context-2.5xsd"></beans>

這個(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ì)按類型裝配

@Autowiredprivate PersonDao personDao;//用于字段上@Autowiredpublic 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)按名稱裝配。名稱可以通過(guò)@Resource的name屬性指定;如果沒(méi)有指定name屬性,當(dāng)注解標(biāo)注在字段上,即默認(rèn)字段的名稱作為bean名稱尋找依賴對(duì)象;當(dāng)注解標(biāo)注在屬性setter方法上,即默認(rèn)取屬性名作為bean名稱尋找依賴對(duì)象

@Resource(name="personDaoBean")private PersonDao personDao;

注:如果沒(méi)有指定name屬性,并且按照默認(rèn)的名稱仍找不到對(duì)象時(shí),@Resource注解會(huì)回退到按類型裝配。但一旦指定了name屬性,就只能按名稱裝配了。

總結(jié)

以上就是本文關(guān)于通過(guò)@Resource注解實(shí)現(xiàn)屬性裝配代碼詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新绛县| 图们市| 明溪县| 济南市| 乡宁县| 德令哈市| 紫阳县| 永兴县| 迭部县| 乐亭县| 胶南市| 循化| 承德市| 江陵县| 奉新县| 铁岭市| 铁岭县| 通山县| 宜丰县| 大洼县| 遂溪县| 寿阳县| 文昌市| 二连浩特市| 长乐市| 潼关县| 洛宁县| 桂阳县| 乡城县| 本溪| 佛学| 盖州市| 广平县| 岐山县| 方城县| 奉贤区| 鄢陵县| 德惠市| 大连市| 大城县| 安庆市|