欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中@Autowired與@Resource注解的區(qū)別詳解

 更新時間:2023年11月02日 10:09:26   作者:huayang183  
這篇文章主要介紹了Java中@Autowired與@Resource注解的區(qū)別詳解,@Resource的作用相當于@Autowired,只不過@Autowired按byType自動注入,而@Resource默認按 byName自動注入罷了,@Resource有兩個屬性是比較重要的,需要的朋友可以參考下

@Autowired與@Resource注解的區(qū)別

@Resource的作用相當于@Autowired,只不過@Autowired按byType自動注入,而@Resource默認按 byName自動注入罷了。@Resource有兩個屬性是比較重要的,分是name和type,Spring將@Resource注解的name屬性解析為bean的名字,而type屬性則解析為bean的類型。所以如果使用name屬性,則使用byName的自動注入策略,而使用type屬性時則使用byType自動注入策略。如果既不指定name也不指定type屬性,這時將通過反射機制使用byName自動注入策略。

@Resource裝配順序

1. 如果同時指定了name和type,則從Spring上下文中找到唯一匹配的bean進行裝配,找不到則拋出異常   

2. 如果指定了name,則從上下文中查找名稱(id)匹配的bean進行裝配,找不到則拋出異常   

3. 如果指定了type,則從上下文中找到類型匹配的唯一bean進行裝配,找不到或者找到多個,都會拋出異常   

4. 如果既沒有指定name,又沒有指定type,則自動按照byName方式進行裝配;如果沒有匹配,則回退為一個原始類型進行匹配,如果匹配則自動裝配;

@Autowired 與@Resource的區(qū)別:

1、@Autowired與@Resource都可以用來裝配bean. 都可以寫在字段上,或寫在setter方法上。

2、@Autowired默認按類型裝配(這個注解是屬業(yè)spring的),默認情況下必須要求依賴對象必須存在,如果要允許null值,可以設置它的required屬性為false,如:@Autowired(required=false) ,如果我們想使用名稱裝配可以結合@Qualifier注解進行使用,如下:

@Autowired () @Qualifier ( "baseDao" )

private BaseDao baseDao;

3、@Resource(這個注解屬于J2EE的),默認按照名稱進行裝配,名稱可以通過name屬性進行指定,如果沒有指定name屬性,當注解寫在字段上時,默認取字段名進行安裝名稱查找,如果注解寫在setter方法上默認取屬性名進行裝配。當找不到與名稱匹配的bean時才按照類型進行裝配。但是需要注意的是,如果name屬性一旦指定,就只會按照名稱進行裝配。

@Resource (name= "baseDao" )

private BaseDao baseDao;

推薦使用:@Resource注解在字段上,這樣就不用寫setter方法了,并且這個注解是屬于J2EE的,減少了與spring的耦合。這樣代碼看起就比較優(yōu)雅。

到此這篇關于Java中@Autowired與@Resource注解的區(qū)別詳解的文章就介紹到這了,更多相關@Autowired與@Resource注解的區(qū)別內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • springboot?ElasticSearch如何配置自定義轉換器ElasticsearchCustomConversions

    springboot?ElasticSearch如何配置自定義轉換器ElasticsearchCustomConver

    這篇文章主要介紹了springboot?ElasticSearch如何配置自定義轉換器ElasticsearchCustomConversions問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java Socket編程(四) 重復和并發(fā)服務器

    Java Socket編程(四) 重復和并發(fā)服務器

    Java Socket編程(四) 重復和并發(fā)服務器...
    2006-12-12
  • 實現(xiàn)Java刪除一個集合的多個元素

    實現(xiàn)Java刪除一個集合的多個元素

    Java中的For each實際上使用的是iterator進行處理的。而iterator是不允許集合在iterator使用期間刪除的。而我在for each時,從集合中刪除了一個元素,這導致了iterator拋出了ConcurrentModificationException,下面來看看到底怎么回事。
    2016-08-08
  • java操作XML實例代碼

    java操作XML實例代碼

    這篇文章主要介紹了java操作XML實例代碼,有需要的朋友可以參考一下
    2014-01-01
  • 在CentOS上配置Java環(huán)境變量的教程

    在CentOS上配置Java環(huán)境變量的教程

    這篇文章主要介紹了在CentOS上配置Java環(huán)境變量的教程,同時適用于Fedora等其他RedHat系的Linux系統(tǒng),需要的朋友可以參考下
    2015-06-06
  • java代碼實現(xiàn)俄羅斯方塊

    java代碼實現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細介紹了java代碼實現(xiàn)俄羅斯方塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Java觀察者模式的深入了解

    Java觀察者模式的深入了解

    這篇文章主要為大家介紹了Java觀察者模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • SpringBoot與MyBatis-Plus的高效集成方式

    SpringBoot與MyBatis-Plus的高效集成方式

    本文詳細介紹了如何在SpringBoot項目中整合MyBatis-Plus,包括環(huán)境準備、實體類與Mapper接口定義、CRUD操作、條件構造器、事務管理、安全性考慮、性能優(yōu)化、版本兼容性與遷移、實際應用場景和監(jiān)控與日志等內容,通過這些步驟,讀者可以掌握MyBatis-Plus的高級特性和最佳實踐
    2024-11-11
  • 列舉java語言中反射的常用方法及實例代碼

    列舉java語言中反射的常用方法及實例代碼

    反射機制指的是程序在運行時能夠獲取自身的信息。這篇文章主要介紹了列舉java語言中反射的常用方法,需要的朋友可以參考下
    2019-07-07
  • Java?任務調度框架?Quartz實操

    Java?任務調度框架?Quartz實操

    這篇文章主要介紹了Java?任務調度框架?Quartz,Quartz是OpenSymphony開源組織在Job?scheduling領域又一個開源項目,完全由Java開發(fā),可以用來執(zhí)行定時任務,類似于java.util.Timer。,下面我們來學習一下關于?Quartz更多的詳細內容,需要的朋友可以參考一下
    2021-12-12

最新評論