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

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)

Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)

2022-01-20 11:59北云洛月 Java教程

這篇文章主要介紹了Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)

1.@Autowired自動(dòng)注入

默認(rèn)是先以byType的方式,如果有多個(gè)類型相匹配,那么使用byName進(jìn)行注入

2.如果想直接使用byName的注入方式

那么需要在@Autowired注解的下面加上注解@Qualifier(“userService”),括號(hào)里面為要注入的bean的name,如圖

Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)

3.如果沒(méi)有指定Spring創(chuàng)建的bean的名稱

(1) 默認(rèn)名為類名,但首字母小寫,如:UserService類,創(chuàng)建的bean的name為userService

(2) 如果類名前兩個(gè)或以上字母都為大寫,那么bean的名字就是類名,如:TUserService類,默認(rèn)創(chuàng)建的bean的name為TUserService

 

@Autowired @Qualifier @Resource的區(qū)別

@Autowired

  • spring的注解,默認(rèn)按type注入

@Qualifier

  • spring的注解,按名字注入 一般當(dāng)出現(xiàn)兩個(gè)及以上bean時(shí),不知道要注入哪個(gè),作為@Autowired()的修飾用

@Resource

  • @Resource(這個(gè)注解屬于J2EE的),默認(rèn)按name注入,可以通過(guò)name和type屬性進(jìn)行選擇性注入

看下栗子

1.@Autowired

寫一個(gè)User類 實(shí)例化一個(gè)User的Bean 在controller中使用@Autowired注入 運(yùn)行程序

訪問(wèn)接口

Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)
Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)

Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)

Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)

要注意的是@Autowired默認(rèn)情況下required=true當(dāng)注入對(duì)象未實(shí)例化被使用 會(huì)空指針 如果要允許null 值,可以設(shè)置它的required屬性為false,@Autowired(required=false)

2.@Qualifier

在實(shí)例化Bean的時(shí)候 實(shí)例化兩個(gè) 如圖

Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)

這時(shí)候會(huì)發(fā)現(xiàn)注入的地方報(bào)錯(cuò) 不清楚要注入哪個(gè)bean 錯(cuò)誤如下圖

Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)

這時(shí)候我們就可以使用@Qualifier來(lái)配合@Autowire進(jìn)行注入了

首先在實(shí)例化bean的時(shí)候指定名字 注入時(shí)使用對(duì)應(yīng)的名字注入 如下圖

Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)
Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)

重新啟動(dòng)后正常訪問(wèn)

3.@Resource

默認(rèn)安照名稱進(jìn)行裝配,名稱可以通過(guò)name屬性進(jìn)行指定, 如果沒(méi)有指定name屬性,當(dāng)注解寫在字段上時(shí),默認(rèn)取字段名進(jìn)行按照名稱查找,如果注解寫在setter方法上默認(rèn)取屬性名進(jìn)行裝配。

當(dāng)找不到與名稱匹配的bean時(shí)才按照類型進(jìn)行裝配。但是需要注意的是,如果name屬性一旦指定,就只會(huì)按照名稱進(jìn)行裝配。

通過(guò)name屬性指定注入 啟動(dòng)項(xiàng)目后可正常訪問(wèn)

Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)

不指定name 初始化一個(gè)bean,name=user2,

Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)
Spring中@Autowired和@Qualifier注解的3個(gè)知識(shí)點(diǎn)小結(jié)

他首先按照類名小寫user作為name去注入Bean,發(fā)現(xiàn)并沒(méi)有這個(gè)名字的實(shí)例,然后會(huì)根據(jù)類型自動(dòng)匹配 所以運(yùn)行程序不會(huì)出錯(cuò) 可以正常訪問(wèn)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/gs838251686/article/details/82973228

延伸 · 閱讀

精彩推薦
  • Java教程Java8中Stream使用的一個(gè)注意事項(xiàng)

    Java8中Stream使用的一個(gè)注意事項(xiàng)

    最近在工作中發(fā)現(xiàn)了對(duì)于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個(gè)非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7482021-02-04
  • Java教程升級(jí)IDEA后Lombok不能使用的解決方法

    升級(jí)IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級(jí),尋思已經(jīng)有好久沒(méi)有升過(guò)級(jí)了。升級(jí)完畢重啟之后,突然發(fā)現(xiàn)好多錯(cuò)誤,本文就來(lái)介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程Java實(shí)現(xiàn)搶紅包功能

    Java實(shí)現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)搶紅包功能,采用多線程模擬多人同時(shí)搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程xml與Java對(duì)象的轉(zhuǎn)換詳解

    xml與Java對(duì)象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對(duì)象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程20個(gè)非常實(shí)用的Java程序代碼片段

    20個(gè)非常實(shí)用的Java程序代碼片段

    這篇文章主要為大家分享了20個(gè)非常實(shí)用的Java程序片段,對(duì)java開發(fā)項(xiàng)目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
主站蜘蛛池模板: 黑人同学征服教师麻麻 | 日本丰满www色 | 日本无遮挡亲吻膜下面免费 | 午夜精品网| 香蕉91视频 | 污小说免费 | 男人曰女人 | 国产一卡| 免费看a视频 | 国产精品第1页在线播放 | 超级毛片 | 亚洲成年| 男女啪啪gif | 日本一区二区精品88 | yjsp妖精视频在线观看免费 | 天天爽视频| 美女吃男生鸡鸡 | 国产精品自拍一区 | 国产精品天天看天天爽 | 丰满大屁股美女一级毛片 | 午夜福到在线4国产 | 日韩国产成人精品视频人 | 国产高清视频免费最新在线 | 99久久精品99999久久 | 国产三级精品播放 | 亚洲高清视频网站 | 邪恶肉肉全彩色无遮盖 | 色综合伊人色综合网亚洲欧洲 | 狠狠婷婷综合缴情亚洲 | 456老汉gay| 好大好爽好涨太深了小喜 | 91国内精品久久久久影院优播 | 精品视频在线观看 | 日本高清在线精品一区二区三区 | 男男互操文 | 亚洲大逼| 国产99久久精品一区二区 | 国产精品久久久天天影视香蕉 | 99热在线这里只有精品 | 精品福利视频一区二区三区 | 国产精品videosse |