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

SpringBoot中@Autowired與@Resource的區(qū)別小結

 更新時間:2025年01月20日 09:05:39   作者:coding俠客  
本文主要介紹了SpringBoot中@Autowired與@Resource的區(qū)別小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

最近接手了離職同事負責的業(yè)務,在處理一個線上工單的時候,看了下歷史邏輯,在閱讀他們寫的代碼時,發(fā)現(xiàn)他們竟然把@Autowired和@Resource注解混用。今天就借此機會聊聊SpringBoot項目中這兩者之間的區(qū)別。

1. 注解來源

  • @Autowired:是Spring框架提供的注解。IOC特性的核心注解之一。
  • @Resource:是Java的標準注解,屬于Java EE 規(guī)范(JSR-250)。

2. 注入方式

  • @Autowired:默認按類型進行注入。如果業(yè)務場景比較復雜,一個接口有多個實現(xiàn)類的話,可以結合@Qualifier注解指定具體的bean。如:
@Service
public class SomeService {
    @Autowired
    @Qualifier("userServiceImpl1")
    private UserService userService1;
    
    @Autowired
    @Qualifier("userServiceImpl2")
    private UserService userService2;
    // 業(yè)務邏輯
}
  • @Resource:默認按名稱進行注入,即name屬性。如果name屬性沒有指定,則按類型進行注入。
@Service
public class SomeService {
    @Resource
    private UserService userService;
    // 業(yè)務邏輯
}

在這種情況下,Spring 會嘗試查找名稱為 userService 的 bean。如果找不到按名稱匹配的 bean,它會再嘗試按類型進行匹配。如果按類型匹配也找不到唯一的 bean,就會拋異常。

用一句話總結就是:@Autowired相當于是@Resource的子集。

3. 依賴檢查

  • @Autowired:默認情況下,它要求依賴的 bean 必須存在于容器中。如果找不到匹配的 bean,Spring 會拋出 NoSuchBeanDefinitionException 異常??梢酝ㄟ^將 required 屬性設置為 false 來改變這種行為,使依賴變?yōu)榭蛇x的,這個時候注入的bean就是null。如:
@Service
public class SomeService {
    @Autowired(required = false)
    private UserService userService;
    // 業(yè)務邏輯
}
  • @Resource:沒有類似 required 這樣明確的屬性來控制依賴是否必須存在。當按名稱或者類型無法找到匹配的 bean 時,會拋出NameNotFoundException 或 NullPointerException 異常。

4. 使用場景選擇

  • @Resource更適合在需要嚴格按名稱注入的場景下使用。
    在 Java EE 環(huán)境中更常見,因為它符合 Java EE 標準。
  • @Autowired是 Spring 生態(tài)系統(tǒng)中最常用的依賴注入方式。對于 Spring 生態(tài)系統(tǒng)的開發(fā)者來說,使用頻次很高。特別是在處理復雜的依賴關系和需要靈活配置的場景下,通過結合 @Qualifier 注解,可以實現(xiàn)精準的依賴注入。

當然,本人也更喜歡使用@Autowired。

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

相關文章

  • Java多線程編程實戰(zhàn)之模擬大量數(shù)據(jù)同步

    Java多線程編程實戰(zhàn)之模擬大量數(shù)據(jù)同步

    這篇文章主要介紹了Java多線程編程實戰(zhàn)之模擬大量數(shù)據(jù)同步,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • 使用Get方式提交數(shù)據(jù)到Tomcat服務器的方法

    使用Get方式提交數(shù)據(jù)到Tomcat服務器的方法

    這篇文章將介紹向服務器發(fā)送數(shù)據(jù),并且服務器將數(shù)據(jù)的處理結果返回給客戶端,本文給大家介紹使用Get方式向服務器發(fā)送數(shù)據(jù),感興趣的朋友一起學習吧
    2016-04-04
  • 你知道Tomcat安裝之前為什么要安裝JDK

    你知道Tomcat安裝之前為什么要安裝JDK

    這篇文章主要介紹了你知道Tomcat安裝之前為什么要安裝JDK嗎?具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java23種設計模式中的單例模式你了解嗎

    Java23種設計模式中的單例模式你了解嗎

    這篇文章主要為大家詳細介紹了Java23種設計模式中的單例模式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 一篇文章帶你了解JVM垃圾回收

    一篇文章帶你了解JVM垃圾回收

    這篇文章主要介紹了JVM的種垃圾回收,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-08-08
  • Java?數(shù)據(jù)交換?Json?和?異步請求?Ajax詳解

    Java?數(shù)據(jù)交換?Json?和?異步請求?Ajax詳解

    Json(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,采用鍵值對的形式來表示數(shù)據(jù),它廣泛應用于Web開發(fā)中,特別適合于前后端數(shù)據(jù)傳輸和存儲,這篇文章主要介紹了Java數(shù)據(jù)交換Json和異步請求Ajax,需要的朋友可以參考下
    2023-09-09
  • Springboot基于enable模塊驅動的實現(xiàn)

    Springboot基于enable模塊驅動的實現(xiàn)

    這篇文章主要介紹了Springboot基于enable模塊驅動的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • springMVC中的view視圖詳細解析

    springMVC中的view視圖詳細解析

    這篇文章主要介紹了springMVC中的view視圖,springMVC視圖的種類很多,默認有轉發(fā)視圖和重定向視圖,本文就每一種視圖給大家詳細介紹,需要的朋友可以參考下
    2022-03-03
  • Java學習筆記之觀察者模式

    Java學習筆記之觀察者模式

    這篇文章主要為大家詳細介紹了Java學習筆記之觀察者模式的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • springboot如何通過session實現(xiàn)單點登入詳解

    springboot如何通過session實現(xiàn)單點登入詳解

    單點登錄(SSO)的定義是在多個應用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統(tǒng),下面這篇文章主要給大家介紹了關于springboot如何通過session實現(xiàn)單點登入的相關資料,需要的朋友可以參考下
    2021-12-12

最新評論

垣曲县| 舟曲县| 咸丰县| 丹棱县| 金平| 连州市| 萝北县| 温宿县| 藁城市| 温泉县| 武鸣县| 霍山县| 贞丰县| 鹤山市| 西吉县| 班戈县| 桐乡市| 贺州市| 镇雄县| 萨嘎县| 昆明市| 丹江口市| 沙洋县| 麦盖提县| 文山县| 巍山| 嫩江县| 土默特左旗| 威远县| 弥渡县| 从江县| 荥阳市| 嵊州市| 通海县| 淳安县| 五寨县| 河北省| 宜兰县| 洞口县| 三原县| 彝良县|