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

淺談SpringBoot @Autowired的兩種注入方式

 更新時間:2021年06月30日 15:45:41   作者:簡單隨風(fēng)  
本文主要介紹了兩種SpringBoot @Autowired注入方式,具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

Autowired有兩種注入方式

  • by type
  • by name

默認(rèn)使用的是byType的方式向Bean里面注入相應(yīng)的Bean。例如:

@Autowired
private UserService userService;

這段代碼會在初始化的時候,在spring容器中尋找一個類型為UserService的bean實體注入,關(guān)聯(lián)到userService的引入上。
但是如果UserService這個接口存在多個實現(xiàn)類的時候,就會在spring注入的時候報錯,例如:

public class UserService1 implements UserService
public class UserService2 implements UserService

此時會報錯 org.springframework.beans.factory.BeanCreationException,而原因是注入的時候發(fā)現(xiàn)有2個匹配的bean,但是不知道要注入哪一個:expected single matching bean but found 2: userService1,userService2
我們改成以下方式:

@Autowired
private UserService userService1;

@Autowired
private UserService userService2;

@Autowired
@Qualifier(value = "userService2")
private UserService userService3;

@Test
public void test(){
    System.out.println(userService1.getClass().toString());
    System.out.println(userService2.getClass().toString());
    System.out.println(userService3.getClass().toString());
}

運(yùn)行結(jié)果:

class yjc.demo.serviceImpl.UserService1
class yjc.demo.serviceImpl.UserService2
class yjc.demo.serviceImpl.UserService2

運(yùn)行結(jié)果成功,說明了2種處理多個實現(xiàn)類的方法:

1.變量名用userService1,userService2,而不是userService。
通常情況下@Autowired是通過byType的方法注入的,可是在多個實現(xiàn)類的時候,byType的方式不再是唯一,而需要通過byName的方式來注入,而這個name默認(rèn)就是根據(jù)變量名來的。

2.通過@Qualifier注解來指明使用哪一個實現(xiàn)類,實際上也是通過byName的方式實現(xiàn)。
由此看來,@Autowired注解到底使用byType還是byName,其實是存在一定策略的,也就是有優(yōu)先級。優(yōu)先用byType,而后是byName。

到此這篇關(guān)于淺談SpringBoot @Autowired的兩種注入方式的文章就介紹到這了,更多相關(guān)SpringBoot @Autowired注入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于shiro中部分SpringCache失效問題的解決方法

    關(guān)于shiro中部分SpringCache失效問題的解決方法

    這篇文章主要給大家介紹了關(guān)于shiro中部分SpringCache失效問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • Java線程狀態(tài)及jstack命令詳解

    Java線程狀態(tài)及jstack命令詳解

    jstack是Java虛擬機(jī)(JVM)提供的一個非常有用的命令行工具,它允許開發(fā)人員和系統(tǒng)管理員在運(yùn)行時獲取Java應(yīng)用程序的線程堆棧跟蹤,在某些情況下,可能需要以管理員或root用戶的身份運(yùn)行jstack命令,這篇文章主要介紹了Java線程狀態(tài)及jstack命令詳解,需要的朋友可以參考下
    2024-03-03
  • spring中時間格式化的兩種方法示例講解

    spring中時間格式化的兩種方法示例講解

    這篇文章主要介紹了spring中時間格式化的兩種方法,方法一自己格式化,方法二通過配置,結(jié)合實例代碼講解的非常詳細(xì),文中補(bǔ)充介紹了Spring項目中時間格式化的方法,需要的朋友可以參考下
    2023-08-08
  • Java基礎(chǔ)教程之final關(guān)鍵字淺析

    Java基礎(chǔ)教程之final關(guān)鍵字淺析

    這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)教程之final關(guān)鍵字的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Java結(jié)構(gòu)型設(shè)計模式之組合模式Composite Pattern詳解

    Java結(jié)構(gòu)型設(shè)計模式之組合模式Composite Pattern詳解

    組合模式,又叫部分整體模式,它創(chuàng)建了對象組的數(shù)據(jù)結(jié)構(gòu)組合模式使得用戶對單個對象和組合對象的訪問具有一致性。本文將通過示例為大家詳細(xì)介紹一下組合模式,需要的可以參考一下
    2022-11-11
  • java InterruptedException 異常中斷的實現(xiàn)

    java InterruptedException 異常中斷的實現(xiàn)

    本文主要介紹了java InterruptedException 異常中斷的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • java字符串與格式化輸出的深入分析

    java字符串與格式化輸出的深入分析

    本篇文章是對java字符串與格式化輸出進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 關(guān)于Javaweb的轉(zhuǎn)發(fā)和重定向詳解

    關(guān)于Javaweb的轉(zhuǎn)發(fā)和重定向詳解

    這篇文章主要介紹了關(guān)于Javaweb的轉(zhuǎn)發(fā)和重定向詳解,請求的轉(zhuǎn)發(fā),是指服務(wù)器收到請求后,從一個服務(wù)器端資源跳轉(zhuǎn)到同一個服務(wù)器端另外一個資源的操作,需要的朋友可以參考下
    2023-05-05
  • Java GZIP壓縮與解壓縮代碼實例

    Java GZIP壓縮與解壓縮代碼實例

    這篇文章主要介紹了Java GZIP壓縮與解壓縮代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Java正則表達(dá)式的替換和分組功能

    Java正則表達(dá)式的替換和分組功能

    這篇文章主要給大家介紹了關(guān)于Java正則表達(dá)式的替換和分組功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評論

黎城县| 舞钢市| 岱山县| 吉木萨尔县| 茶陵县| 汉川市| 信宜市| 周口市| 浏阳市| 高邮市| 女性| 咸阳市| 渭南市| 远安县| 元氏县| 三原县| 永丰县| 永和县| 东兴市| 闵行区| 呈贡县| 铜鼓县| 舟曲县| 漠河县| 河南省| 固原市| 余江县| 壶关县| 铁力市| 邵武市| 合山市| 宜良县| 叶城县| 抚顺市| 神农架林区| 响水县| 萍乡市| 南充市| 五华县| 延津县| 平和县|