最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring最核心的注解@Bean本質(zhì)用法及說(shuō)明

 更新時(shí)間:2026年05月13日 09:45:15   作者:tuokuac  
文章解釋了`@Bean`注解的本質(zhì)以及如何在Spring中使用它來(lái)管理Bean, `Bean`注解告訴Spring執(zhí)行該方法并把返回值作為Bean進(jìn)行容器管理, 春看到`@Bean`會(huì)自動(dòng)調(diào)用方法獲取返回值,將返回的對(duì)象放進(jìn)容器中管理, 通過(guò)這種方式,其他類(lèi)可以直接注入使用這些Bean.

Spring 最核心的注解@Bean本質(zhì)

直接給你一句話戳穿本質(zhì),馬上徹底懂

答案:

這個(gè)方法本身不是 Bean,方法執(zhí)行后返回的對(duì)象才是 Bean!

Spring 會(huì)把這個(gè)返回的對(duì)象放進(jìn)容器里管理!

用最通俗的話講@Bean原理

看這段代碼:

@Configuration // 配置類(lèi)
public class MesaageConfig {

    // 加了 @Bean 的方法
    @Bean
    public MessageConverter messageConverter() {
        // 1. 自己 new 對(duì)象
        Jackson2JsonMessageConverter converter = new Jackson2JsonMessageConverter();
        // 2. 自己配置對(duì)象
        converter.setCreateMessageIds(true);
        // 3. 返回對(duì)象
        return converter; 
    }
}

Spring 看到@Bean會(huì)做什么?

Spring 會(huì)自動(dòng)調(diào)用這個(gè)方法,拿到返回值,然后:

  • 把返回的對(duì)象放進(jìn) Spring 容器
  • 給這個(gè) Bean 起名 = 方法名 messageConverter
  • 以后別人想用,直接注入就行

總結(jié):

@Bean = 告訴 Spring:執(zhí)行我這個(gè)方法,把返回的對(duì)象給我當(dāng)成 Bean 管理!

  • 方法 = 造 Bean 的工廠
  • 返回值 = 真正的 Bean

問(wèn):它不是方法嗎?怎么成 Bean 了?

畫(huà)個(gè)等號(hào)你就懂了:

@Bean
public 消息 造消息的方法() {
    造一個(gè)消息...
    return 消息; // Spring 拿走這個(gè)「消息」當(dāng) Bean
}
  • 方法:只是生產(chǎn) Bean 的流水線
  • 返回的對(duì)象:才是商品(Bean)
  • @Bean:就是貼在流水線上的標(biāo)簽,告訴 Spring 來(lái)拿貨

這個(gè) Bean 怎么用?

其他類(lèi)里直接注入就能用:

@Service
public class MessageService {

    // 直接注入!Spring 自動(dòng)把上面方法返回的對(duì)象給你
    @Autowired
    private MessageConverter messageConverter;
}

@Bean和 類(lèi)注解(@Service/@Component)區(qū)別

方式注解適用場(chǎng)景
自己寫(xiě)的類(lèi)@Service @Component類(lèi)是你寫(xiě)的,直接加注解
別人寫(xiě)的類(lèi)(Jackson、RabbitTemplate…)@Bean類(lèi)不是你寫(xiě)的,你需要new 出來(lái) + 配置,交給 Spring

你的場(chǎng)景:

Jackson2JsonMessageConverter別人寫(xiě)的類(lèi),你需要:

  • new 出來(lái)
  • 配置 setCreateMessageIds(true)
  • 交給 Spring

→ 必須用 @Bean!

終極總結(jié)(背下來(lái))

  • 加了 @Bean 的方法 = Spring 會(huì)自動(dòng)調(diào)用
  • 方法的返回值 = 放進(jìn)容器的 Bean 對(duì)象
  • 方法名 = Bean 的名字
  • 別人可以直接注入使用

最直白的一句:

你寫(xiě)的是方法,但 Spring 要的是你方法 return 出來(lái)的那個(gè)對(duì)象!

再給你對(duì)應(yīng)一下:

  • @Configuration:造 Bean 的工廠類(lèi)
  • @Bean:工廠里的加工方法
  • return xxx:加工好的產(chǎn)品 → Bean

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring中的聲明式事務(wù)控制詳解

    Spring中的聲明式事務(wù)控制詳解

    這篇文章主要介紹了Spring中的聲明式事務(wù)控制詳解,Spring的聲明式事務(wù)顧名思義就是采用聲明的方式來(lái)處理事務(wù),這里所說(shuō)的聲明,就是指在配置文件中聲明,用在Spring配置文件中聲明式的事務(wù)處理來(lái)代替代碼是的處理事務(wù),需要的朋友可以參考下
    2024-01-01
  • Vue計(jì)算屬性computed和監(jiān)聽(tīng)屬性watch的使用解讀

    Vue計(jì)算屬性computed和監(jiān)聽(tīng)屬性watch的使用解讀

    本文介紹了Vue.js中的計(jì)算屬性(computed)和監(jiān)聽(tīng)屬性(watch)的區(qū)別和使用場(chǎng)景,計(jì)算屬性是基于依賴(lài)緩存的,只有在相關(guān)依賴(lài)發(fā)生改變時(shí)才會(huì)重新求值,適合用于簡(jiǎn)單的數(shù)據(jù)處理和計(jì)算,而監(jiān)聽(tīng)屬性則用于監(jiān)聽(tīng)數(shù)據(jù)變化時(shí)執(zhí)行異步或開(kāi)銷(xiāo)較大的操作,適合用于處理復(fù)雜的數(shù)據(jù)邏輯
    2025-12-12
  • 最新hadoop安裝教程及hadoop的命令使用(親測(cè)可用)

    最新hadoop安裝教程及hadoop的命令使用(親測(cè)可用)

    這篇文章主要介紹了最新hadoop安裝教程(親測(cè)可用),本文主要講解了如何安裝hadoop、使用hadoop的命令及遇到的問(wèn)題解決,需要的朋友可以參考下
    2022-06-06
  • SpringBoot-JWT生成Token和攔截器的使用(訪問(wèn)受限資源)

    SpringBoot-JWT生成Token和攔截器的使用(訪問(wèn)受限資源)

    本文主要介紹了SpringBoot-JWT生成Token和攔截器的使用(訪問(wèn)受限資源),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Java學(xué)習(xí)之緩沖流的原理詳解

    Java學(xué)習(xí)之緩沖流的原理詳解

    為了提高其數(shù)據(jù)的讀寫(xiě)效率,Java中又定義了四種緩沖流,分別是:字節(jié)緩沖輸入流、字節(jié)緩沖輸出流、字符緩沖輸入流和字符緩沖輸出流。本文主要來(lái)和大家聊聊這些緩沖流的原理,希望對(duì)大家有所幫助
    2023-01-01
  • 從入門(mén)到精通:Java List遍歷修改的完全指南

    從入門(mén)到精通:Java List遍歷修改的完全指南

    在Java中,我們經(jīng)常需要遍歷List集合并對(duì)其中的元素進(jìn)行修改,這可以通過(guò)使用迭代器或for循環(huán)來(lái)實(shí)現(xiàn),需要的朋友可以參考下
    2023-10-10
  • Java實(shí)現(xiàn)生成自定義時(shí)長(zhǎng)的靜音音頻

    Java實(shí)現(xiàn)生成自定義時(shí)長(zhǎng)的靜音音頻

    這篇文章主要介紹了如何通過(guò)Java實(shí)現(xiàn)一個(gè)音頻工具類(lèi),可以實(shí)現(xiàn)生成一段自定義時(shí)長(zhǎng)(精確到毫秒)的wav音頻。感興趣的小伙伴可以了解一下
    2022-01-01
  • spring狀態(tài)機(jī)模式使用小結(jié)

    spring狀態(tài)機(jī)模式使用小結(jié)

    說(shuō)起Spring狀態(tài)機(jī),大家很容易聯(lián)想到這個(gè)狀態(tài)機(jī)和設(shè)計(jì)模式中狀態(tài)模式的區(qū)別是啥呢?沒(méi)錯(cuò),Spring狀態(tài)機(jī)就是狀態(tài)模式的一種實(shí)現(xiàn),在介紹Spring狀態(tài)機(jī)之前,讓我們來(lái)看看設(shè)計(jì)模式中的狀態(tài)模式,需要的朋友可以參考下
    2024-04-04
  • Java中的Cursor使用詳解

    Java中的Cursor使用詳解

    本文介紹了Java中的Cursor接口及其在大數(shù)據(jù)集處理中的優(yōu)勢(shì),包括逐行讀取、分頁(yè)處理、流控制、動(dòng)態(tài)改變查詢(xún)、并發(fā)控制和減少網(wǎng)絡(luò)流量等,感興趣的朋友一起看看吧
    2025-02-02
  • Elasticsearch索引結(jié)構(gòu)與算法解析

    Elasticsearch索引結(jié)構(gòu)與算法解析

    ?作為搜索引擎的一部分,ES自然具有速度快、結(jié)果準(zhǔn)確、結(jié)果豐富等特點(diǎn),那么ES是如何達(dá)到“搜索引擎”級(jí)別的查詢(xún)效率呢?首先是索引,其次是壓縮算法,接下來(lái)我們就一起了解下ES的索引結(jié)構(gòu)和壓縮算法
    2023-04-04

最新評(píng)論

孝义市| 那坡县| 新平| 长垣县| 巴彦淖尔市| 获嘉县| 东光县| 阳谷县| 基隆市| 武夷山市| 唐河县| 尖扎县| 栖霞市| 宽甸| 峡江县| 富源县| 高碑店市| 柳州市| 宜宾市| 长顺县| 和静县| 彭阳县| 潼南县| 偃师市| 富阳市| 无锡市| 山阴县| 陈巴尔虎旗| 库伦旗| 广河县| 白沙| 开封县| 讷河市| 弥勒县| 丹棱县| 铁力市| 塘沽区| 赫章县| 孟州市| 吴旗县| 泰和县|