一文掌握Spring?中?@Component?和?@Bean?區(qū)別(最新推薦)
Spring 中 @Component 和 @Bean 區(qū)別
1. 用途不同
?@Component 用于標(biāo)識(shí)一個(gè)普通的類,@Bean用于配置類里面,在方法上面聲明和配置 Bean 對(duì)象
Tips:
@Component會(huì)告訴Spring,由@Component所修飾的類會(huì)被作為組件類,同時(shí)Spring要為這個(gè)類創(chuàng)建Bean- 告知
spring這個(gè)方法會(huì)返回一個(gè)對(duì)象,這個(gè)對(duì)象需要注冊(cè)為Spring上下文(ApplicationContext)中的bean,通常方法體包含了最終產(chǎn)生bean實(shí)例的邏輯
2.使用方式不同
? @Component 是類級(jí)別的注解,Spring 可以掃描到配置此注解的這些類并把他們注入到 SpringIOC 容器中,@Bean 是修飾在方法上的,表示此方法返回一個(gè) Bean 對(duì)象注入到 SpringIOC 容器中。
Tips:但是都能夠在Spring中注冊(cè)Bean對(duì)象
@Component 使用示例
@Component
public class OrderService {
}但是在spring中通常@Component注解通常要配合@ComponentScan實(shí)現(xiàn)注冊(cè)的功能
@ComponentScan("指定@Component注解所在的包路徑")
public class AppConfig {
}@Bean 使用示例
@Configuration
public class AppConfig {
@Bean
public OrderService orderService1(){
return new OrderService();
}
}@Bean需要在配置類中使用,即類上需要加上@Configuration注解,然后在配置類中使用一個(gè)方法定義bean是如何創(chuàng)建的
3. 控制權(quán)不同
? @Component 修飾的類是由Spring框架 統(tǒng)一管理和創(chuàng)建的,而 @Bean 允許開(kāi)發(fā)人員手動(dòng)控制 Bean的創(chuàng)建和配置
4. 靈活性不同
@Bean注解比@Component注解靈活,我們可以按需注冊(cè)需要的bean,很多場(chǎng)景我們只能通過(guò)@Bean來(lái)注冊(cè)bean,比如引入第三方庫(kù)中的類需要裝配到spring容器中。
參考文獻(xiàn)
Spring中@Component注解和@Bean的區(qū)別是什么
Spring中@Component和@Bean的區(qū)別_spring bean和component
到此這篇關(guān)于Spring 中 @Component 和 @Bean 區(qū)別的文章就介紹到這了,更多相關(guān)Spring @Component 和 @Bean 區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot實(shí)現(xiàn)前端驗(yàn)證碼圖片生成和校驗(yàn)
這篇文章主要為大家詳細(xì)介紹了SpringBoot實(shí)現(xiàn)前端驗(yàn)證碼圖片生成和校驗(yàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
利用JSONObject.toJSONString()包含或排除指定的屬性
這篇文章主要介紹了利用JSONObject.toJSONString()包含或排除指定的屬性,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
java實(shí)現(xiàn)視頻轉(zhuǎn)碼工具類
這篇文章主要介紹了java實(shí)現(xiàn)視頻轉(zhuǎn)碼,涉及到工具類用到的參數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01
解決啟用 Spring-Cloud-OpenFeign 配置可刷新項(xiàng)目無(wú)法啟動(dòng)的問(wèn)題
這篇文章主要介紹了解決啟用 Spring-Cloud-OpenFeign 配置可刷新項(xiàng)目無(wú)法啟動(dòng)的問(wèn)題,本文重點(diǎn)給大家介紹Spring-Cloud-OpenFeign的原理及問(wèn)題解決方法,需要的朋友可以參考下2021-10-10
Struts 2 實(shí)現(xiàn)Action的幾種方式
本篇文章主要介紹了Struts 2 實(shí)現(xiàn)Action的幾種方式,Struts 2框架下實(shí)現(xiàn)Action類有三種方式,有興趣的可以了解一下2017-10-10
Java中的CountDownLatch、CyclicBarrier和semaphore實(shí)現(xiàn)原理解讀
這篇文章主要介紹了Java中的CountDownLatch、CyclicBarrier和semaphore實(shí)現(xiàn)原理詳解,CountDownLatch中調(diào)用await方法線程需要等待所有調(diào)用countDown方法的線程執(zhí)行,這就很適合一個(gè)業(yè)務(wù)需要一些準(zhǔn)備條件,等準(zhǔn)備條件準(zhǔn)備好之后再繼續(xù)執(zhí)行,需要的朋友可以參考下2023-12-12
Java內(nèi)存之happens-before和重排序
在JMM(Java內(nèi)存模型)中,如果一個(gè)操作執(zhí)行的結(jié)果需要對(duì)另一個(gè)操作可見(jiàn),那么這兩個(gè)操作之間必須存在happens-before關(guān)系。下面小編來(lái)簡(jiǎn)單介紹一下2019-05-05

