欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring中@Configuration和@Bean注解的用法

 更新時(shí)間:2023年05月12日 08:40:59   作者:wangjun5159  
這篇文章主要介紹了spring中@Configuration和@Bean注解的用法,@Configuration用于定義配置類,可替換xml配置文件,被注解的類內(nèi)部包含有一個(gè)或多個(gè)被@Bean注解的方法,需要的朋友可以參考下

概要

@Configuration里邊定義@Bean,@Configuration相當(dāng)于一個(gè)xml配置文件,@Bean就是xml中的<bean/>

定義

bean依賴可以調(diào)用方法,比如這里的beanTwo()。你可能會(huì)好奇,如果beanTwo()被調(diào)用兩次會(huì)不會(huì)創(chuàng)建兩個(gè)beanTwo實(shí)例,因?yàn)閟pring bean的默認(rèn)scope是單例;答案是不會(huì)創(chuàng)建多個(gè)實(shí)例的,@Configuration類實(shí)現(xiàn)原理是cglib,代理類繼承了配置類,然后重寫方法,從而實(shí)現(xiàn)攔截,這也是為什么配置類不能被final修飾。

@Configuration
public class AppConfig {
    @Bean
    public BeanOne beanOne() {
       //bean依賴,直接調(diào)用本類方法beanTwo
        return new BeanOne(beanTwo());
    }
    @Bean
    public BeanTwo beanTwo() {
        return new BeanTwo();
    }
}

如果跨@Configuration怎么辦?將依賴bean當(dāng)做方法參數(shù)傳遞,無(wú)論是否同一個(gè)類都可以使用這種方式,實(shí)踐中這種用法更實(shí)用。

@Configuration
public class AppConfig1 {
    //bean依賴,方法參數(shù)當(dāng)作依賴
    @Bean
    public BeanOne beanOne(BeanTwo  beanTwo) {
        return new BeanOne(beanTwo);
    }
}
@Configuration
public class AppConfig2 {
    @Bean
    public BeanTwo beanTwo() {
        return new BeanTwo();
    }
}

注意

如果@Bean方法返回的是BeanPostProcessor,方法要用static修飾,否則可能造成@Configuration中的@AutoWired、@Inject沒(méi)被注入,因?yàn)楹苡锌赡蹵utoWiredBeanPostProcessor在@Configuration實(shí)例化之后執(zhí)行。這是為什么呢? 這是因?yàn)閟tatic方法的BeanPostProcessor實(shí)例化時(shí),不需要實(shí)例化@Configuration類,相當(dāng)于執(zhí)行ConfigurationClass.staticMethod(); 而非static方法,依賴@Configuration類實(shí)例,相當(dāng)于new ConfigurationClass().notStaticMethod();

到此這篇關(guān)于spring中@Configuration和@Bean注解的用法的文章就介紹到這了,更多相關(guān)spring的@Configuration和@Bean內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 中通過(guò) key 獲取鎖的方法

    Java 中通過(guò) key 獲取鎖的方法

    這篇文章主要介紹了Java 中通過(guò) key 獲取鎖,本文演示如何對(duì)某個(gè) key 加鎖,以保證對(duì)該 key 的并發(fā)操作限制,可以實(shí)現(xiàn)同一個(gè) key 一個(gè)或者多個(gè)線程同時(shí)執(zhí)行,需要的朋友可以參考下
    2022-11-11
  • ocp開(kāi)閉原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    ocp開(kāi)閉原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了ocp開(kāi)閉原則的相關(guān)資料,ocp開(kāi)閉原則指導(dǎo)我們?nèi)绾谓⒁粋€(gè)穩(wěn)定的、靈活的系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Kotlin內(nèi)存陷阱inline使用技巧示例詳解

    Kotlin內(nèi)存陷阱inline使用技巧示例詳解

    這篇文章主要為大家介紹了Kotlin內(nèi)存陷阱inline使用技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Mybatis接口Mapper內(nèi)的方法為啥不能重載嗎

    Mybatis接口Mapper內(nèi)的方法為啥不能重載嗎

    這篇文章主要介紹了Mybatis接口Mapper內(nèi)的方法為啥不能重載嗎,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 一文詳解Java中枚舉類的使用

    一文詳解Java中枚舉類的使用

    這篇文章主要介紹了深入淺出講解Java中的枚舉類,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,感興趣的朋友可以了解下
    2022-11-11
  • java獲取網(wǎng)絡(luò)類型的方法

    java獲取網(wǎng)絡(luò)類型的方法

    這篇文章主要介紹了java獲取網(wǎng)絡(luò)類型的方法,涉及java針對(duì)網(wǎng)絡(luò)類型的參數(shù)獲取及判定技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • Jtable和JTree的寫法示例代碼

    Jtable和JTree的寫法示例代碼

    這篇文章主要介紹了Jtable和JTree的基本概念,常用構(gòu)造方法,以及二者的通用寫法,需要的朋友可以了解下。
    2017-09-09
  • java數(shù)組排序示例(冒泡排序、快速排序、希爾排序、選擇排序)

    java數(shù)組排序示例(冒泡排序、快速排序、希爾排序、選擇排序)

    java中在運(yùn)用數(shù)組進(jìn)行排序功能時(shí),一般有四種方法:快速排序法、冒泡法、選擇排序法、插入排序法(希爾排序(Shell Sort)是插入排序的一種),下面是一些示例,需要的朋友可以參考下
    2014-03-03
  • Mybatis批量插入返回插入成功后的主鍵id操作

    Mybatis批量插入返回插入成功后的主鍵id操作

    這篇文章主要介紹了Mybatis批量插入返回插入成功后的主鍵id操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 關(guān)于break和continue以及l(fā)abel的區(qū)別和作用(詳解)

    關(guān)于break和continue以及l(fā)abel的區(qū)別和作用(詳解)

    下面小編就為大家?guī)?lái)一篇關(guān)于break和continue以及l(fā)abel的區(qū)別和作用(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05

最新評(píng)論