SpringBoot中@Configuration和@Bean和@Component相同點詳解
SpringBoot中@Configuration和@Bean和@Component相同點
之前一直有疑惑,為什么SpringBoot中有些組件注入需要使用@Bean,有些需要使用@Component,有些使用@Configuration,今天做了一些實驗,解除了疑惑
結(jié)論:
@Configuration和@Bean和@Component在注入對象時大體上是沒有區(qū)別的,都可以為Spring容器注入一個對象(底層對對象的處理在是有很大區(qū)別的,詳細(xì)不在此處解釋)
那么他們之間
@Bean注解的作用
是將方法返回值作為一個bean注入到Spring容器中,方法名即為bean的名稱
如圖所示,該bean注入后的名稱就是方法名。
@Component的適用對象是類
標(biāo)注在類上,將此類作為一個bean注入容器,類名首字母小寫即為bean的名稱
比如該類標(biāo)注上@Component后,會為Spring容器注入一個名為myLocaleResolver的bean,但是我們需要的是名為localeResolver的bean,直接改名即可!
@Configuration包含@Component注解
所以兩者本質(zhì)相同!
比如:我們用三種方式為Spring注入國際化bean
我們既可以使用@Bean注解返回一個對象
也可以將@Component注解標(biāo)注在類上
也可以使用@Configuration注解標(biāo)注,三者效果相同!
注意:
雖然三種注解使用大體相同,但是還是需要分時而定配置類使用@Configuration,普通組件使用@Component即可,如果是第三方類,我們無法修改類的信息,使用@Bean將對象返回給Spring容器是最好的選擇!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot項目實現(xiàn)將類從@ComponentScan中排除
這篇文章主要介紹了Springboot項目實現(xiàn)將類從@ComponentScan中排除,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11使用SpringBoot中web項目推薦目錄結(jié)構(gòu)的問題
這篇文章主要介紹了SpringBoot中web項目推薦目錄結(jié)構(gòu)的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01SpringMVC中使用bean來接收form表單提交的參數(shù)時的注意點
本篇文章主要介紹了SpringMVC中使用bean來接收form表單提交的參數(shù)時的注意點,具有很好的參考價值。下面跟著小編一起來看下吧2017-05-05SpringBoot工程Docker多環(huán)境中使用同一個Jar包解決方案
在Docker多環(huán)境部署中,SpringBoot工程可以通過環(huán)境變量來動態(tài)改變配置,無需重新打包,利用volume掛載或docker?cp命令,可以將配置文件直接傳入容器,提高部署效率,并保證安全性2024-09-09IDEA使用學(xué)生郵箱無法注冊問題:JetBrains Account connection error: 拒絕連接
這篇文章主要介紹了IDEA使用學(xué)生郵箱無法注冊問題:JetBrains Account connection error: 拒絕連接,文中通過圖文及示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07淺談spring中用到的設(shè)計模式及應(yīng)用場景
下面小編就為大家?guī)硪黄獪\談spring中用到的設(shè)計模式及應(yīng)用場景。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08