spring中的依賴注入

文章目錄

    • spring中的依賴注入
      • 一、@Autowired
      • 二、@Qualifier
      • 三、@Resource
      • 四、總結

spring中的依賴注入

這里主要講述三個注解裝配

一、@Autowired

作用:自動按照類型注入。只要容器中唯一的一個bean對象類型和要注入的變量類型匹配,就可以注入成功。

如果ioc容器中沒任何bean的類型和要注入的變量類型匹配,則報錯。

如果Ioc容器中多個類型匹配時:必須用**@Qualifier(value=“xx”)**進行指定,否則就會報錯

出現位置:可以是變量上,也可以是方法上。

細節:在使用注解注入時,set方法就不是必須的了。

    public @interface Autowired {boolean required() default true;}

特別:

//如果顯示定義了Autowired的required屬性為false,說明這個對象可以為null,否則不允許為空@Autowired(required = false)

二、@Qualifier

作用:在照類中注入的基礎之上再照名稱注入。在給類成員注入時不能單獨使用。但是在給方法參數注入時可以。

屬性:value:用于指定注入bean的id。

如果@Autowired自動裝配的環境比較復雜,自動裝配無法通過一個注解【@Autowired】完成的時候我們可以使用@Qualifier(value=“xx”)去配合@Autowired的使用,指定一個唯一的bean對象注入。

@Autowired
@Qualifier(value = "car")
private Movable movable;

三、@Resource

作用:直接照bean的id注入。它可以獨立使用。

@Resource(name = "car")
private Movable movable;

這段代碼和上面的代碼等效

注意:以上注入都只能注入其他bean類型的數據,而基本類型和String類型無法使用上述注解實現。
另外,集合類型的注入只能通過XML來實現。

四、總結

@Resource和@Autowired的區別:

  1. 都是用來自動裝配的,都可以放在屬性字段上。
  2. @ Autowired 通過byType的方式實現,而且必須要求這個對象存在。
  3. @Resource 默認通過byname的方式實現,如果找不到名字,則通過byType實現。如果兩個都找不到的情況下,就報錯。
    @Resource 默認通過byname的方式實現,如果找不到名字,則通過byType實現。如果兩個都找不到的情況下,就報錯。
  4. @Autowired 通過byType的方式實現,@Resource 默認通過byname的方式實現

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/46426.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/46426.shtml
英文地址,請注明出處:http://en.pswp.cn/web/46426.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL5.7社區版本在CentOS7系統上的安裝

MySQL5.7社區版本在CentOS7系統上的安裝 1.配合yum倉庫 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm 2.使用yum安裝MySQL5.7 yum -y install mysql-community-server 3.安裝…

面向鐵路、地鐵旅客信息系統(PIS)的上架型整機,鐵路專用M12網絡接口,滿足歐洲鐵路應用標準

上架型整機 2U 19寸上架型整機,采用高性能低功耗處理器,能應用在寬溫環境下,并滿足歐洲鐵路應用標準EN50155關于電磁兼容性,沖擊和振動測試試驗的要求,是一款面向鐵路、地鐵旅客信息系統(PIS)的…

C# 關于 PaddleOCRSharp OCR識別的疲勞測試

目錄 關于 PaddleOCRSharp 應用范例演示 ?范例運行環境 疲勞測試 添加組件庫 方法設計 調用示例 小結 關于 PaddleOCRSharp PaddleOCRSharp 是百度飛槳封裝的.NET版本 OCR dll 類庫,OCR(Optical Character Recognition)工具可以將…

【Java面向對象】抽象類和接口

文章目錄 1.抽象類2.常見的抽象類2.1 Number類2.2 Calendar 和GregorianCalendar 3.接口4.常見接口4.1 Comparable 接口4.2 Cloneable 接口4.3 深淺拷貝 5.類的設計原則 1.抽象類 在繼承的層次結構中,每個新的子類都使類變得更加明確和具體。如果從一個子類向父類追…

Unty 崩潰問題(Burst 1.8.2)

錯誤代碼: Assertion failed on expression: exception SCRIPTING_NULL UnityEngine.StackTraceUtility:ExtractStackTrace () Unity.Burst.BurstCompiler:SendRawCommandToCompiler (string Unity版本:2021.3.17F1,Burst 1.8.2 表現&…

python安裝talib庫教程

【talib介紹】 Talib介紹 Talib,全稱“Technical Analysis Library”,即技術分析庫,是一個廣泛應用于金融量化領域的Python庫。該庫由C語言編寫,支持Python調用,為投資者、交易員和數據分析師提供了強大的技術分析工…

酷炫末世意境背景404單頁HTML源碼

源碼介紹 酷炫末世意境背景404單頁HTML源碼,背景充滿著破壞一切的意境,彷佛末世的到來,可以做網站錯誤頁或者丟失頁面,將下面的代碼放到空白的HTML里面,然后上傳到服務器里面,設置好重定向即可 效果預覽 …

餐邊柜不踩坑的尺寸和做法

大家問餐邊柜怎么做好看不踩坑      十做十不做,有尺寸和總結      1,柜子的深度30和35cm就行,低于30太窄放不了東西      高于35餐廳會顯得窄,      2,鏤空的地方一定要做背板,      3,柜子不用裝修反彈器,也不做拉手,一個容易壞,一個不好看      建議…

論文學習——基于自適應選擇的動態多目標進化優化有效響應策略

論文題目:Effective response strategies based on adaptive selection for dynamic multi-objective evolutionary optimization 基于自適應選擇的動態多目標進化優化有效響應策略(Xiaoli Li a,b,c, Anran Cao a,?, Kang Wang a)Applied S…

零基礎STM32單片機編程入門(十五) DHT11溫濕度傳感器模塊實戰含源碼

文章目錄 一.概要二.DHT11主要性能參數三.DHT11溫度傳感器內部框圖四.DTH11模塊原理圖五.DHT11模塊跟單片機板子接線和通訊時序1.單片機跟DHT11模塊連接示意圖2.單片機跟DHT11模塊通訊流程與時序 六.STM32單片機DHT11溫度傳感器實驗七.CubeMX工程源代碼下載八.小結 一.概要 DH…

App Inventor 2 天氣預報App開發 - 第三方API接入的通用方法(2)

本文來自AppInventor2中文網(www.fun123.cn)參考文檔,調用第三方天氣接口獲取天氣JSON數據,解析并展示在App上。 App效果圖,展示未來7日的天氣預報,包括日期、天氣圖示和溫度: App原理介紹 通…

Linux/Windows 系統分區

1. Windows 系統 1.1 系統分區 系統分區也叫做磁盤分區,即分盤; 舉個例子,好比家里有一個大柜子,把衣服,鞋子,襪子都放在里面,由于沒有隔斷,找的時候非常麻煩,找是能找…

C++ Primer:3.2 標準庫類型string

其他章節&#xff1a;C Primer 學習心得 標準庫類型string表示可變長的字符序列&#xff0c;使用string類型必須首先頭文件&#xff0c;string定義在命名空間std中 #include <string> using std::string定義和初始化string對象 初始化類的對象是由類本身決定的&#x…

借力Jersey,鑄就卓越RESTful API體驗

目錄 maven 創建 jersey 項目 運行 支持返回 json 數據對象 1. 引言 在當今數字化時代&#xff0c;API&#xff08;應用程序編程接口&#xff09;已成為連接不同軟件系統和服務的橋梁。RESTful API以其簡潔、輕量級和易于理解的特點&#xff0c;成為了API設計的首選標準。本…

Hive函數之-posexplode()

1、概念描述&#xff1a; posexplode() 是一個內建函數&#xff0c;用于處理數組數據&#xff0c;并將數組的每個元素及其索引&#xff08;位置&#xff09;轉換為兩列的表格式數據。posexplode() 函數對于處理需要元素位置信息的數組特別有用。pos就是postion的縮寫&#xff…

Windows雙網卡上網原理以及配置方法

目錄 1. 背景 2. IP路由原理 3. windows雙網卡上網解決方案 3.1. 基礎配置解決方案 3.2. 高階配置解決方案 1. 背景 在windwos上使用多網卡在工作和生活中是一個常見的操作&#xff0c;比如為了獲取內部消息將有線連接到內部局域網中&#xff0c;為而了訪問外網又將電腦的…

華為云GaussDB部署指南:主備架構的常見問題與解決方案

文章目錄 華為云GaussDB部署指南&#xff1a;主備架構的常見問題與解決方案背景介紹部署步驟1.修改主機名2.軟件安裝檢查3.禁用交換內存4.創建數據目錄并掛載5.配置NTP時鐘同步6.添加資源限制參數7.修改網卡的MTU8.上傳安裝工具包9.編輯集群配置文件10.修改集群安裝模板11.安裝…

木舟0基礎學習Java的第二十天(線程,實現,匿名有名,休眠,守護,加入,設計,計時器,通信)

多線程 并發執行的技術 并發和并行 并發&#xff1a;同一時間 有多個指令 在單個CPU上 交替執行 并行&#xff1a;同一時間 有多個指令 在多個CPU上 執行 進程和線程 進程&#xff1a;獨立運行 任何進程 都可以同其他進程一起 并發執行 線程&#xff1a;是進程中的單個順…

【.NET全棧】ASP.NET開發Web應用——站點導航技術

文章目錄 前言一、站點地圖1、定義站點地圖文件2、使用SiteMapPath控件3、SiteMap類4、URL地址映射 二、TreeView控件1、使用TreeView控件2、以編程的方式添加節點3、使用TreeView控件導航4、綁定到XML文件5、按需加載節點6、帶復選框的TreeView控件 三、Menu控件1、使用Menu控…

Hutool-Guava

目錄 一、Guava 二、Hutool 三、區別與聯系 四、使用場景 五、Guava工具類 1.集合工具類 2.字符串工具類 3.并發工具類 六、Hutool 1.字符串工具類 2.文件工具類 Hutool 和 Guava 都是 Java 開發中非常實用的工具庫&#xff0c;它們提供了許多方便的工具類和方法&am…