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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

用@Resource注解完成屬性裝配

2019-11-15 00:21:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
用@Resource注解完成屬性裝配

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

依賴(lài)注入—手工裝配

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

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

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

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

1  <beans Xmlns="http://www.springframework.org/schema/beans"2              Xmlns="http://www.w3.org/2001/XMLSchema-instance"3              Xmlns:context="http://www.springframework.org/schema/context"4              Xsi:schemaLocation="http://www.springframework.org/schema/beans5                          http://www.springframework.org/schema/context6                          http://www.springframework.org/schema/context/spring-context-2.5xsd">7 </beans>  

這個(gè)配置隱式注冊(cè)了多個(gè)對(duì)注釋進(jìn)行解析處理的處理器:AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor

PersistenceAnnotationBeanProcessor,RequiredAnnotationBeanPostProcessor

3.區(qū)別

在java代碼中使用@Autowired或@Resource注解方式進(jìn)行裝配。這兩個(gè)注解的區(qū)別是@Autowired默認(rèn)按類(lèi)型裝配@Resource默認(rèn)按名稱(chēng)進(jìn)行裝配,當(dāng)找不到與名稱(chēng)匹配的bean才會(huì)按類(lèi)型裝配

1 @Autowired2 private PersonDao personDao;//用于字段上3 @Autowired4 public void setOrderDao(OrderDao orderDao){5        this.orderDao = orderDao; //用于屬性的setter方法上      6 }

@Autowired注解是按類(lèi)型裝配依賴(lài)對(duì)象,默認(rèn)情況下它要求依賴(lài)對(duì)象必須存在,如果允許null值,可以設(shè)置它required屬性為false;如果我們想使用名稱(chēng)裝配,可以結(jié)合@Qualfier注解一起使用,如下:

@Autowired@Qualifier("personDao")private PersonDao personDao;

@Resource注解和@Autowired一樣,可以標(biāo)注在字段或者屬性的setter方法上,但它默認(rèn)按名稱(chēng)裝配。名稱(chēng)可以通過(guò)@Resource的name屬性指定;如果沒(méi)有指定name屬性,當(dāng)注解標(biāo)注在字段上,即默認(rèn)字段的名稱(chēng)作為bean名稱(chēng)尋找依賴(lài)對(duì)象;當(dāng)注解標(biāo)注在屬性setter方法上,即默認(rèn)取屬性名作為bean名稱(chēng)尋找依賴(lài)對(duì)象

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

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


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 姜堰市| 沙田区| 温宿县| 嘉鱼县| 枞阳县| 巫山县| 芦溪县| 申扎县| 庆云县| 克东县| 桦甸市| 昔阳县| 剑川县| 庄河市| 固原市| 肇源县| 洛南县| 民县| 高雄市| 合山市| 富川| 肃南| 桐庐县| 隆回县| 鄯善县| 玉门市| 永仁县| 安仁县| 阆中市| 阳山县| 文昌市| 庆元县| 祥云县| 南昌县| 长乐市| 彭山县| 深圳市| 镇康县| 贵阳市| 鄯善县| 广水市|