SpringBoot中@Configuration和@Bean和@Component相同點(diǎn)詳解
SpringBoot中@Configuration和@Bean和@Component相同點(diǎn)
之前一直有疑惑,為什么SpringBoot中有些組件注入需要使用@Bean,有些需要使用@Component,有些使用@Configuration,今天做了一些實(shí)驗(yàn),解除了疑惑
結(jié)論:
@Configuration和@Bean和@Component在注入對(duì)象時(shí)大體上是沒有區(qū)別的,都可以為Spring容器注入一個(gè)對(duì)象(底層對(duì)對(duì)象的處理在是有很大區(qū)別的,詳細(xì)不在此處解釋)
那么他們之間
@Bean注解的作用
是將方法返回值作為一個(gè)bean注入到Spring容器中,方法名即為bean的名稱

如圖所示,該bean注入后的名稱就是方法名。
@Component的適用對(duì)象是類
標(biāo)注在類上,將此類作為一個(gè)bean注入容器,類名首字母小寫即為bean的名稱

比如該類標(biāo)注上@Component后,會(huì)為Spring容器注入一個(gè)名為myLocaleResolver的bean,但是我們需要的是名為localeResolver的bean,直接改名即可!
@Configuration包含@Component注解
所以兩者本質(zhì)相同!

比如:我們用三種方式為Spring注入國際化bean

我們既可以使用@Bean注解返回一個(gè)對(duì)象

也可以將@Component注解標(biāo)注在類上

也可以使用@Configuration注解標(biāo)注,三者效果相同!
注意:
雖然三種注解使用大體相同,但是還是需要分時(shí)而定配置類使用@Configuration,普通組件使用@Component即可,如果是第三方類,我們無法修改類的信息,使用@Bean將對(duì)象返回給Spring容器是最好的選擇!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Spring解讀@Component和@Configuration的區(qū)別以及源碼分析
- Spring中@Configuration和@Component注解的區(qū)別及原理
- Spring中@Configuration注解和@Component注解的區(qū)別詳解
- 詳解Spring中@Component和@Configuration的區(qū)別
- Spring注解@Configuration和@Component區(qū)別詳解
- Spring注解中@Configuration和@Component到底有啥區(qū)別
- Spring @Configuration和@Component的區(qū)別
- 揭秘Spring核心注解@Configuration與@Component的本質(zhì)區(qū)別
相關(guān)文章
kafka-console-consumer.sh使用2次grep管道無法提取消息的解決
這篇文章主要介紹了kafka-console-consumer.sh使用2次grep管道無法提取消息的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
JPA如何使用entityManager執(zhí)行SQL并指定返回類型
這篇文章主要介紹了JPA使用entityManager執(zhí)行SQL并指定返回類型的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
java編程中自動(dòng)拆箱與自動(dòng)裝箱詳解
這篇文章主要介紹了java編程中自動(dòng)拆箱與自動(dòng)裝箱詳解,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11
java Spring AOP詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了java Spring AOP詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05
簡(jiǎn)介Java的Spring框架的體系結(jié)構(gòu)以及安裝配置
這篇文章主要介紹了Java的Spring框架的體系結(jié)構(gòu)以及安裝配置,Spring框架是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下2015-12-12
SpringBoot整合Mybatis使用Druid數(shù)據(jù)庫連接池
這篇文章主要介紹了SpringBoot整合Mybatis使用Druid數(shù)據(jù)庫連接池,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
SpringBoot實(shí)戰(zhàn)教程之新手入門篇
Spring Boot使我們更容易去創(chuàng)建基于Spring的獨(dú)立和產(chǎn)品級(jí)的可以"即時(shí)運(yùn)行"的應(yīng)用和服務(wù),下面這篇文章主要給大家介紹了關(guān)于SpringBoot實(shí)戰(zhàn)教程之入門篇的相關(guān)資料,需要的朋友可以參考下2022-03-03
Java出現(xiàn):JWT strings must contain exactly&
這篇文章主要介紹了JWT令牌解析失敗的原因和解決方法,包括Header、Payload和Signature三段式結(jié)構(gòu),常見錯(cuò)誤原因,通用解決方案以及額外注意點(diǎn),需要的朋友可以參考下2026-01-01

