一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 通過@Resource注解實現屬性裝配代碼詳解

通過@Resource注解實現屬性裝配代碼詳解

2021-03-17 14:28別鬧了 Java教程

這篇文章主要介紹了通過@Resource注解實現屬性裝配代碼詳解,具有一定借鑒價值,需要的朋友可以參考下

本文主要探究的問題時使用@Resource注解實現屬性裝配,當中涉及依賴注入—手工裝配,@Autowired和@Resource注解的區別等相關內容,具體如下。

使用Field注入(用于注解方式):注入依賴對象可以采用手工裝配或者手工自動裝配。在實際應用中建議使用手工裝配,因為自動裝配會產生未知情況,開發人員無法預見最終的裝配結果。

依賴注入—手工裝配

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

1.在xml配置文件中,通過bean節點配置,如:

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

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

?
1
2
3
4
5
6
7
<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>

這個配置隱式注冊了多個對注釋進行解析處理的處理器:

AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor

PersistenceAnnotationBeanProcessor,RequiredAnnotationBeanPostProcessor

3.區別

在java代碼中使用@Autowired或@Resource注解方式進行裝配。這兩個注解的區別是@Autowired默認按類型裝配@Resource默認按名稱進行裝配,當找不到與名稱匹配的bean才會按類型裝配

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

@Autowired注解是按類型裝配依賴對象,默認情況下它要求依賴對象必須存在,如果允許null值,可以設置它required屬性為false;如果我們想使用名稱裝配,可以結合@Qualfier注解一起使用,如下:

?
1
2
@Autowired@Qualifier("personDao")
private PersonDao personDao;

@Resource注解和@Autowired一樣,可以標注在字段或者屬性的setter方法上,但它默認按名稱裝配。名稱可以通過@Resource的name屬性指定;如果沒有指定name屬性,當注解標注在字段上,即默認字段的名稱作為bean名稱尋找依賴對象;當注解標注在屬性setter方法上,即默認取屬性名作為bean名稱尋找依賴對象

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

注:如果沒有指定name屬性,并且按照默認的名稱仍找不到對象時,@Resource注解會回退到按類型裝配。但一旦指定了name屬性,就只能按名稱裝配了。

總結

以上就是本文關于通過@Resource注解實現屬性裝配代碼詳解的全部內容,希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:http://www.cnblogs.com/ckysea/p/4536768.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人女人天堂午夜视频 | 婷婷99av综合| 日本人成年视频在线观看 | 国产成人免费观看在线视频 | 国产成人啪精品午夜在线播放 | 精品99在线观看 | 538精品视频 | 国产精品网页 | 国产美女久久久久 | 调教催眠 | 狠狠久久久久综合网 | h片在线看 | 国产色视频一区二区三区 | 三级网站午夜三级 | xxxx意大利xxxxhd | 京东热在线观看 | 亚洲国产麻豆 | 精品免费视在线视频观看 | 荷兰艾优apiyoo | 亚洲天堂视频在线观看免费 | 天美传媒果冻传媒星空传媒 | 亚洲黄色大片 | 亚洲天堂网在线观看视频 | 无码国产成人777爽死 | 日韩欧美三级视频 | 日本视频高清免费观看xxx | 爱爱小说漫画 | 暖暖在线精品日本中文 | 亚洲精品国产在线观看 | 91国产在线第7页 | 青青国产成人久久91网 | 亚洲欧美国产精品久久久 | 大妹子最新视频在线观看 | 青青青久在线视频免费观看 | 麻豆性视频 | 色综合天天综合网国产人 | 成 人免费va视频 | 精品亚洲欧美中文字幕在线看 | 精品区2区3区4区产品乱码9 | 91香蕉小视频 | 91麻豆精品国产 |