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

Spring中@Autowired和@Resource注解的使用區(qū)別詳解

 更新時(shí)間:2023年11月06日 08:43:50   作者:Sterne_  
這篇文章主要介紹了Spring中@Autowired和@Resource注解的使用區(qū)別詳解,@Autowired默認(rèn)根據(jù)type進(jìn)行注入,找到與指定類(lèi)型兼容的?Bean?并進(jìn)行注入,如果無(wú)法通過(guò)type匹配到對(duì)應(yīng)的?Bean?的話(huà),會(huì)根據(jù)name進(jìn)行匹配,如果都匹配不到則拋出異常,需要的朋友可以參考下

1. @Autowired

@Autowired是由Spring提供的注解

@Autowired的bean的匹配規(guī)則

@Autowired默認(rèn)根據(jù)type進(jìn)行注入,找到與指定類(lèi)型兼容的 Bean 并進(jìn)行注入,如果無(wú)法通過(guò)type匹配到對(duì)應(yīng)的 Bean 的話(huà),會(huì)根據(jù)name進(jìn)行匹配,如果都匹配不到則拋出異常。

  • @Autowired 默認(rèn)是按照類(lèi)的類(lèi)型去匹配。如果存在一個(gè)相同類(lèi)型的bean,則注入該bean。
  • 如果存在多個(gè) bean,但只有一個(gè) bean 擁有 @Primary 注解,則將帶有 @Primary 注解的 bean 注入。@Primary 注解用于指定默認(rèn)首選的 bean。
  • 如果存在多個(gè) bean,可以使用@Qualifier注解,配合該注解指定bean的具體名稱(chēng),根據(jù)名稱(chēng)去識(shí)別bean。
  • 如果存在多個(gè) bean,可以使用 List 或 Set 數(shù)據(jù)結(jié)構(gòu)來(lái)接收所有匹配的 bean。Spring 將自動(dòng)將所有匹配的 bean 放入這些集合中。
  • 如果存在多個(gè) bean,沒(méi)有配合上述的方案,則將拋出 NoUniqueBeanDefinitionException 異常。

在這里插入圖片描述

@Autowired的required屬性

默認(rèn)情況下,required = true,即依賴(lài)bean必須存在,如果不存在,則會(huì)拋出異常。但是,通過(guò)將required屬性設(shè)置為false,則依賴(lài)bean不存在也不會(huì)報(bào)錯(cuò)。

在這里插入圖片描述

2. @Resource

@Resource是Java EE規(guī)范的一部分,但Spring同樣支持該注解。

@Resource的bean的匹配規(guī)則

默認(rèn)根據(jù)name進(jìn)行注入,如果無(wú)法通過(guò)名稱(chēng)匹配到對(duì)應(yīng)的 Bean 的話(huà),會(huì)根據(jù)type進(jìn)行匹配,找到與指定類(lèi)型兼容的 Bean 并進(jìn)行注入,如果都匹配不到則拋出異常。

使用 name 屬性指定資源的名稱(chēng)

@Component
public class MyClass {
    // 名為 "myBean1" 的 bean 將會(huì)被注入
    @Resource(name = "myBean1")
    private MyBean myBean;
}

使用默認(rèn)名稱(chēng)匹配資源

@Component
public class MyClass {
    // 名為“mybean”的bean將被注入
    @Resource
    private MyBean myBean;
}

根據(jù)type 屬性來(lái)指定要注入的bean類(lèi)型

public interface MyService {
    void fetchData();
}
@Component
public class MyServiceA implements MyService {
    public void fetchData() {
        System.out.println("from MyServiceA");
    }
}
@Component
public class MyServiceB implements MyService {
    public void fetchData() {
        System.out.println("from MyServiceB");
    }
}
@Component
public class DataProcessor {
    // 根據(jù)指定type注入myServiceA的bean
    @Resource(type = MyServiceA.class)
    private MyService myService;
    // 與上面效果相同注入myServiceA的bean
    @Resource
    private MyServiceA myServiceA;
    // 與上面效果相同注入myServiceA的bean
    @Resource
    private MyService myServiceA;
    // 與上面效果相同注入myServiceA的bean
    @Resource(name = "myServiceA")
    private MyService myService;
    // 注入bean失敗,存在兩個(gè)bean
    @Resource
    private MyService myService;
}

@Resource不存在required屬性

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

相關(guān)文章

  • 手把手教你實(shí)現(xiàn)idea中配置國(guó)內(nèi)源

    手把手教你實(shí)現(xiàn)idea中配置國(guó)內(nèi)源

    idea的國(guó)內(nèi)源配置十分重要,能夠提升程序開(kāi)發(fā)的效率而且也是減少bug的一種有效防范,本文就來(lái)介紹一下idea中配置國(guó)內(nèi)源,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-07-07
  • SpringBoot實(shí)現(xiàn)多租戶(hù)系統(tǒng)架構(gòu)的5種設(shè)計(jì)方案介紹

    SpringBoot實(shí)現(xiàn)多租戶(hù)系統(tǒng)架構(gòu)的5種設(shè)計(jì)方案介紹

    多租戶(hù)(Multi-tenancy)是一種軟件架構(gòu)模式,允許單個(gè)應(yīng)用實(shí)例服務(wù)于多個(gè)客戶(hù)(租戶(hù)),同時(shí)保持租戶(hù)數(shù)據(jù)的隔離性和安全性,本文分享了SpringBoot環(huán)境下實(shí)現(xiàn)多租戶(hù)系統(tǒng)的5種架構(gòu)設(shè)計(jì)方案,需要的可以參考一下
    2025-05-05
  • java 中數(shù)組初始化實(shí)例詳解

    java 中數(shù)組初始化實(shí)例詳解

    這篇文章主要介紹了 本文主要講數(shù)組的初始化方法、可變參數(shù)列表以及可變參數(shù)列表對(duì)函數(shù)重載的影響的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Springboot-yaml配置和自動(dòng)配置原理分析

    Springboot-yaml配置和自動(dòng)配置原理分析

    這篇文章主要介紹了Springboot-yaml配置和自動(dòng)配置原理分析,自動(dòng)配置原理是配置文件配置debug: true可以在控制臺(tái)打印自動(dòng)配置報(bào)告.可以打印所有的啟動(dòng)的自動(dòng)配置和沒(méi)有啟動(dòng)的自動(dòng)配置類(lèi),需要的朋友可以參考下
    2021-06-06
  • springBoot中的properties配置解析

    springBoot中的properties配置解析

    這篇文章主要介紹了springBoot中的properties配置解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 關(guān)于spring中事務(wù)的傳播機(jī)制

    關(guān)于spring中事務(wù)的傳播機(jī)制

    這篇文章主要介紹了關(guān)于spring中事務(wù)的傳播機(jī)制,所謂事務(wù)傳播機(jī)制,也就是在事務(wù)在多個(gè)方法的調(diào)用中是如何傳遞的,是重新創(chuàng)建事務(wù)還是使用父方法的事務(wù),需要的朋友可以參考下
    2023-05-05
  • Java Switch對(duì)各類(lèi)型支持實(shí)現(xiàn)原理

    Java Switch對(duì)各類(lèi)型支持實(shí)現(xiàn)原理

    這篇文章主要介紹了Java Switch對(duì)各類(lèi)型支持實(shí)現(xiàn)原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java使用IntelliJ IDEA連接MySQL的詳細(xì)教程

    Java使用IntelliJ IDEA連接MySQL的詳細(xì)教程

    這篇文章主要給大家介紹了關(guān)于Java使用IntelliJ IDEA連接MySQL的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • java/word+fusionchart生成圖表深入分析

    java/word+fusionchart生成圖表深入分析

    本文將以java/word+fusionchart生成圖表問(wèn)題深入解析,有興趣的朋友可以參考下
    2012-11-11
  • idea啟動(dòng)項(xiàng)目提示端口占用的問(wèn)題解決

    idea啟動(dòng)項(xiàng)目提示端口占用的問(wèn)題解決

    有時(shí)候當(dāng)我們使用Tomcat啟動(dòng)web項(xiàng)目時(shí),會(huì)提示端口占用,導(dǎo)致啟動(dòng)失敗,本文就來(lái)介紹一下端口占用的解決方法,具有一定的參考價(jià)值,感興趣的可以了解下
    2023-08-08

最新評(píng)論

乐平市| 双江| 镇康县| 陇川县| 河南省| 香港| 浦城县| 六安市| 谢通门县| 周至县| 万安县| 陵川县| 云龙县| 济源市| 罗江县| 武定县| 大宁县| 县级市| 遂川县| 六安市| 柞水县| 宜川县| 武功县| 汕尾市| 内黄县| 江山市| 顺昌县| 体育| 红河县| 平乐县| 乌恰县| 临江市| 宝坻区| 忻城县| 昭苏县| 象山县| 北辰区| 高碑店市| 阜平县| 大庆市| 通州区|