Spring中存在兩個相同的Bean是否會報錯?

第一種情況:使用XML的方式設置Bean,這種情況在Spring啟動時就會報錯,因為ID在Spring中是Bean的唯一標識,Spring容器在啟動時會校驗唯一性,一旦發現重復就會報錯。但是如果是在兩個不同的XML文件中定義兩個相同的Bean,Spring容器會在啟動時用第二個覆蓋第一個,最終只有一個Bean,不會報錯。

第二種情況:出現在Spring3.x之后,Spring支持以@Configration來聲明一個配置類,然后用@Bean的形式聲明一個Bean,這種形式完全替換了XML的格式,不會出現報錯。那么當一個配置類中聲明了多個相同的Bean時,IOC容器只會注冊第一個Bean,后續重復的Bean都會忽略。

@Configuration
public class SpringConfiguration {
@Bean( name = "service" )
public Service1 service1( ){
return new Service1( );
}
@Bean( name = "service" )
public Service2 service2( ){
return new Service2( );
}
}

比如,像這樣一段代碼,在Spring IoC容器中,就只會保留service1這個實例。后續相同名字的Bean就不會再加載,當然也不會報錯。

第三種情況,如果使用@Autowired注解來實現依賴注入的話,它是根據類型來注入的。比如像這樣一段代碼

@Autowired
private Service1 service1;
@Autowired
private Service2 service2;

因為IOC容器只有Service1的實例,所以啟動的時候會提示找不到Service2這個實例

第四種情況,再看這樣一段代碼:

@Resource( name="service" )
private Service1 service1;
@Resource( name="service" )
private Service2 service2;

如果使用@Resource注解根據名稱來實現依賴注入的話,那么在IoC容器中只能獲取到Service1的實例,
于是,Spring會把Service1這個實例賦值給Service2,這個時候,就會提示類型不匹配的錯誤

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

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

相關文章

【新手入門】Android基礎知識(一):系統架構

目 錄 Android 系統架構圖 1. 應用 2. JAVA API 框架 3. 原生 C/C 庫 4. Android 運行時(Android Runtime) 5. 硬件抽象層 (HAL) 6. Linux 內核 參考資料 Android 系統架構圖 Android底層內核空間以Linux Kernel作為基石,上層用戶空…

晶振電路的負載電容、電阻參數設計

系列文章目錄 文章目錄系列文章目錄前言一、晶振主要參數二、有源與無源區別三、無源晶振四、有源晶振總結前言 在硬件電路的設計中,晶振電路是必不可少的,它充當了整個電路心臟的作用。在這個晶振電路的設計中負載電容、電阻參數的選型是很重要的&…

電腦上練打字用什么軟件最好:10款打字軟件評測

現在孩子們在電腦上練打字,軟件一搜一大把,可好多家長和老師都犯愁:到底哪個管用?我帶200多個小學生練過字,前前后后試了十款軟件,今天就掏心窩子說說——有的看著花哨其實沒用,有的專業是專業但…

第五天~提取Arxml的模板信息

?? ARXML模板信息提取:解鎖汽車軟件的樂高魔法 在汽車電子的世界里,AUTOSAR(汽車開放系統架構)如同無形的神經系統,而ARXML文件正是承載這套神經系統藍圖的數字載體。當工程師們需要批量創建或修改ECU(電子控制單元)配置時,模板信息提取便成為了一項至關重要的核心技…

react+antd+vite自動引入組件、圖標等

前言:react在使用antd的時候,也是需要每個組件都在界面上按需引入的,那能不能自動生成,按需使用呢?我們這里說一說這個。安裝插件,組件按需引入unplugin-antd-resolverunplugin-auto-importnpm install unp…

深度學習與遙感入門(六)|輕量化 MobileNetV2 高光譜分類

系列回顧: (一)CNN 基礎:高光譜圖像分類可視化全流程 (二)HybridNet(CNNTransformer):提升全局感受野 (三)GCN 入門實戰:基于光譜 KNN…

第4節 神經網絡從公式簡化到卷積神經網絡(CNN)的進化之路

?? 深度學習的"玄學進化史" 從CNN用卷積層池化層處理圖片,循環網絡RNN如何利用上下文處理序列數據,到注意力機制讓Transformer橫空出世,現在的大語言模型已經能寫能畫能決策!每個新技巧都讓人驚呼"還能這么玩",難怪說深度學習像玄學——但這玄學,…

最新去水印小程序系統 前端+后端全套源碼 多套模版 免授權(源碼下載)

最新去水印小程序系統 前端后端全套源碼 多套模版 免授權 源碼下載:https://download.csdn.net/download/m0_66047725/91669468 更多資源下載:關注我

TCP Socket 編程實戰:實現簡易英譯漢服務

前言:TCP(傳輸控制協議)是一種面向連接、可靠的流式傳輸協議,與 UDP 的無連接特性不同,它通過三次握手建立連接、四次揮手斷開連接,提供數據確認、重傳機制,保證數據有序且完整傳輸。本文將基于…

CF566C Logistical Questions Solution

Description 給定一棵 nnn 個點的樹 TTT,點有點權 aia_iai?,邊有邊權 www. 定義 dist?(u,v)\operatorname{dist}(u,v)dist(u,v) 為 u→vu\to vu→v 的簡單路徑上的邊權和. 找到一個節點 uuu,使得 W∑i1ndist?(u,i)32aiW\sum\limits_{i1}^n…

聊天室全棧開發-保姆級教程(Node.js+Websocket+Redis+HTML+CSS)

前言 最近在學習websocket全雙工通信,想要做一個聯機小游戲,做游戲之前先做一個聊天室練練手。 跟著本篇博客,可以從0搭建一個屬于你自己的聊天室。 準備階段 什么人適合學習本篇文章? 答:前端開發者,有一…

后臺管理系統-2-vue3之路由配置和Main組件的初步搭建布局

文章目錄1 路由搭建1.1 路由創建(router/index.js)1.2 路由組件(views/Main.vue)1.3 路由引入并注冊(main.js)1.4 路由渲染(App.vue)2 element-plus的應用2.1 完整引入并注冊(main.js)2.2 示例應用(App.vue)3 ElementPlusIconsVue的應用3.1 圖標引入并注冊(main.js)3.2 示例應用…

使用 Let’s Encrypt 免費申請泛域名 SSL 證書,并實現自動續期

使用 Let’s Encrypt 免費申請泛域名 SSL 證書,并實現自動續期 目錄 使用 Let’s Encrypt 免費申請泛域名 SSL 證書,并實現自動續期 🛠? 環境準備💡 什么是 Let’s Encrypt?🧠 Let’s Encrypt 證書頒發原…

一鍵自動化:Kickstart無人值守安裝指南

Kickstart文件實現自動安裝1. Kickstart文件概述1.1 定義與作用Kickstart文件是Red Hat系Linux發行版(如RHEL、CentOS、Fedora)用于實現自動化安裝的配置文件,采用純文本格式保存。它通過預設安裝參數的方式,使系統安裝過程無需人…

深度解讀 Browser-Use:讓 AI 驅動瀏覽器自動化成為可能

目錄 一、什么是 Browser-Use? 二、Browser-Use 的核心功能 1. AI 與瀏覽器的鏈接橋梁 2. 無代碼 / 低代碼操作界面 3. 支持多家 LLM 4. 開發體驗簡潔 可快速上手 三、核心價值與適用場景 四、與 Playwright 的結合使用 五、總結與展望 https://github.com…

React.memo、useMemo 和 React.PureComponent的區別

useMemo 和 React.memo 都是 React 提供的性能優化工具,但它們的作用和使用場景有顯著不同。以下是兩者的全面對比: 一、核心區別總結特性useMemoReact.memo類型React Hook高階組件(HOC)作用對象緩存計算結果緩存組件渲染結果優化目標避免重復計算避免不…

Lumerical INTERCONNECT ------ CW Laser 和 OPWM 組成的系統

Lumerical INTERCONNECT ------ CW Laser 和 OPWM 組成的系統 引言 正文 引言 這里我們來簡單介紹一下 CW Laser 與 OSA 組成的簡單系統結構的仿真。 正文 我們構建一個如下圖所示的仿真結構。 我們將 CWL 中的 power 設置為 1 W。 然后直接運行仿真查看結果如下: 雖然 …

想漲薪30%?別只盯著大廠了!轉型AI產品經理的3個通用方法,人人都能學!

在AI產品經理剛成為互聯網公司香餑餑的時候,剛做產品1年的月月就規劃了自己的轉型計劃,然后用3個月時間成功更換賽道,轉戰AI產品經理,漲薪30%。 問及她有什么上岸秘訣?她也復盤總結了3個踩坑經驗和正確路徑&#xff0c…

基于Hadoop的全國農產品批發價格數據分析與可視化與價格預測研究

文章目錄有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主項目介紹每文一語有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主 項目介紹 隨著我國農業數字化進程的加快,農產品批發市場每天都會產生海量的價格…

STM32在使用DMA發送和接收時的模式區別

在STM32的DMA傳輸中,發送使用DMA_Mode_Normal而接收使用DMA_Mode_Circular的設計基于以下關鍵差異:1. ?觸發機制的本質區別??發送方向(TX)?:由USART的?TXE標志(發送寄存器空)觸發?&#x…