" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring@Autowired與@Resource的區(qū)別有哪些

 更新時間:2022年02月17日 17:20:01   作者:蟲鏈Java Library  
這篇文章主要為大家詳細介紹了@Autowired與@Resource的區(qū)別,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

@Autowired與@Resource都是我們?nèi)粘i_發(fā)中常用的兩個注解,那么它們之間究竟有何區(qū)別呢?

開始講解之前我們首先要明白一點,這個兩個注解都是用來完成組件的裝配的,即利用依賴注入(DI),完成對ioc容器當中各個組件之間依賴的裝配賦值。

@Autowired注解

來源:@Autowired為Spring提供的注解,需要導(dǎo)入包org.springframework.beans.factory.annotation.Autowired。

說明:@Autowired采取的默認策略為按照類型注入(by-type)。要求容器中一定要有這個類型的對象,如果沒有將會報錯,拋出異常。也可以通過設(shè)置可以@Autowired(required = false),來告訴容器,如果沒有可以不注入。

示例:

public class StudentController {
    @Autowired
    private StudentServer studentServer; 
}

如上代碼所示,這樣裝配會去spring容器中找到類型為StudentServer的類,然后將其注入進來。這樣會產(chǎn)生一個問題,當容器中有多個相同類型的對象,會造成無法選擇具體注入哪一個的情況從而導(dǎo)致報錯,這個時候我們可以通過@Qualifier("beanname"),來指定裝配哪個對象。

public class StudentController {
    @Autowired
    @Qualifier(name="studentServer")    
    private StudentServer studentServer; 
}

@Qualifier注解會告訴spring去裝配StudentServer對象。這個時候我們就可以成功注入正確的對象了。

@Resource注解

來源:@Resource注解由J2EE提供,需要導(dǎo)入包javax.annotation.Resource。

說明:@Resource可以設(shè)置by-name(按名稱)和by-type(按類型)來進行自動裝配。如果沒指定則默認按照ByName自動注入。

示例

public class StudentController {
    @Resource  
    private StudentServer studentServer; 
}

沒有指定name,又沒有指定type,該注解會自動按照by-name方式進行裝配,如果匹配則自動裝配。如果沒有匹配,則按照by-type進行查找,如果都沒查找到,那么則拋出異常。

public class StudentController {
    @Resource(name="studentServer")  
    private StudentServer studentServer; 
}

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

public class StudentController {
     @Resource(type="StudentServer")   
    private StudentServer studentServer; 
}

指定了type,則從上下文中找到類似匹配的唯一bean進行裝配,找不到或是找到多個,都會拋出異常。

public class StudentController {    @Resource(name="studentServer",type="StudentServer")      private StudentServer studentServer; }public class StudentController {
    @Resource(name="studentServer",type="StudentServer")  
    private StudentServer studentServer; 
}

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

總結(jié)

@Autowired是Spring的注解通過類型(type)來實現(xiàn)裝配Bean,也可以通過名稱(name)來裝配Bean(需要配合@Qualifier(“beanname”)使用)。依賴對象必須存在,如果要允許null值,可以設(shè)置它的required屬性為false @Autowired(required=false)。

@Resource是J2EE的注解是Java自已的東西使用@Resource可以減少代碼和Spring之間的耦合。它可以通過by-type來實現(xiàn)裝配Bean,也可以by-name進行裝配,如果指定了則按照指定的進行裝配,如果都沒指定的話先by-name 后by-type 也可以同時指定by-name與by-type。

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!  

相關(guān)文章

  • spring boot過濾器FilterRegistrationBean實現(xiàn)方式

    spring boot過濾器FilterRegistrationBean實現(xiàn)方式

    這篇文章主要介紹了spring boot過濾器FilterRegistrationBean實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2019-10-10
  • Java編程思想對象的容納實例詳解

    Java編程思想對象的容納實例詳解

    這篇文章主要介紹了Java編程思想對象的容納實例詳解,內(nèi)容比較詳細,涵蓋的東西也比較多,具有參考價值,需要的朋友了解下。
    2017-09-09
  • list,set,map,數(shù)組之間的相互轉(zhuǎn)換詳細解析

    list,set,map,數(shù)組之間的相互轉(zhuǎn)換詳細解析

    以下是對Java中l(wèi)ist,set,map,數(shù)組之間的相互轉(zhuǎn)換進行了詳細的分析介紹,需要的朋友可以過來參考下
    2013-09-09
  • IDEA實現(xiàn) springmvc的簡單注冊登錄功能的示例代碼

    IDEA實現(xiàn) springmvc的簡單注冊登錄功能的示例代碼

    這篇文章主要介紹了IDEA實現(xiàn) springmvc的簡單注冊登錄功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Java調(diào)用CXF WebService接口的兩種方式實例

    Java調(diào)用CXF WebService接口的兩種方式實例

    今天小編就為大家分享一篇關(guān)于Java調(diào)用CXF WebService接口的兩種方式實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 深入了解JAVA 軟引用

    深入了解JAVA 軟引用

    這篇文章主要介紹了JAVA 軟引用的相關(guān)資料,幫助大家更好的理解和學(xué)習,感興趣的朋友可以了解下
    2020-08-08
  • spring boot異步(Async)任務(wù)調(diào)度實現(xiàn)方法

    spring boot異步(Async)任務(wù)調(diào)度實現(xiàn)方法

    在沒有使用spring boot之前,我們的做法是在配置文件中定義一個任務(wù)池,然后將@Async注解的任務(wù)丟到任務(wù)池中去執(zhí)行,那么在spring boot中,怎么來實現(xiàn)異步任務(wù)的調(diào)用了,下面通過本文給大家講解,需要的朋友參考下
    2018-02-02
  • Java多線程 ThreadLocal原理解析

    Java多線程 ThreadLocal原理解析

    這篇文章主要介紹了Java多線程 ThreadLocal原理,ThreadLoal 變量,線程局部變量,同一個 ThreadLocal 所包含的對象,在不同的 Thread 中有不同的副本,下面文章也是圍繞Java多線程 ThreadLocal展開內(nèi)容,需要的朋友可以參考一下
    2021-10-10
  • SpringBoot整合JWT的入門指南

    SpringBoot整合JWT的入門指南

    JWT全稱是json web token,它將用戶信息加密到 token 里,服務(wù)器不保存任何用戶信息,服務(wù)器通過使用保存的密鑰驗證 token 的正確性,只要正確即通過驗證,這篇文章主要給大家介紹了關(guān)于SpringBoot整合JWT的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • Java常見異常及處理方式總結(jié)

    Java常見異常及處理方式總結(jié)

    今天給大家?guī)淼氖荍ava的相關(guān)知識,文章圍繞著Java異常展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06

最新評論

宣恩县| 息烽县| 云林县| 和平县| 蕲春县| 澄江县| 石屏县| 星子县| 岫岩| 南郑县| 陆河县| 芒康县| 武穴市| 霍州市| 当涂县| 儋州市| 开鲁县| 武清区| 柘荣县| 封开县| 尼玛县| 龙川县| 怀宁县| 河曲县| 邹平县| 崇阳县| 宜黄县| 淮滨县| 长宁县| 高陵县| 海南省| 鄢陵县| 三门峡市| 沂源县| 招远市| 体育| 喀喇沁旗| 凤城市| 尼木县| 澄迈县| 珲春市|