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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 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)文章
Java連接MySQL數(shù)據(jù)庫命令行程序過程
SQL編程包括兩種形式,一種是過程化編程,主要通過數(shù)據(jù)庫交互式工具,通過存儲過程、觸發(fā)器、函數(shù)等形式的編程;另一種是嵌入式SQL編程,將SQL語句嵌入到高級開發(fā)語言,完成數(shù)據(jù)的各種操作2021-10-10ApplicationListenerDetector監(jiān)聽器判斷demo
這篇文章主要為大家介紹了ApplicationListenerDetector監(jiān)聽器判斷demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03SpringBoot訪問web中的靜態(tài)資源的方式小結(jié)
這篇文章主要介紹了SpringBoot訪問web中的靜態(tài)資源的方式,本文給大家介紹了兩種方式,通過代碼示例和圖文講解的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下2024-10-10