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

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

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

概要

@Configuration里邊定義@Bean,@Configuration相當于一個xml配置文件,@Bean就是xml中的<bean/>

定義

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

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

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

@Configuration
public class AppConfig1 {
    //bean依賴,方法參數(shù)當作依賴
    @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沒被注入,因為很有可能AutoWiredBeanPostProcessor在@Configuration實例化之后執(zhí)行。這是為什么呢? 這是因為static方法的BeanPostProcessor實例化時,不需要實例化@Configuration類,相當于執(zhí)行ConfigurationClass.staticMethod(); 而非static方法,依賴@Configuration類實例,相當于new ConfigurationClass().notStaticMethod();

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

相關文章

  • 利用HttpUrlConnection 上傳 接收文件的實現(xiàn)方法

    利用HttpUrlConnection 上傳 接收文件的實現(xiàn)方法

    下面小編就為大家?guī)硪黄肏ttpUrlConnection 上傳 接收文件的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • Spring入門到精通之Bean標簽詳解

    Spring入門到精通之Bean標簽詳解

    這篇文章主要為大家詳細介紹了Spring中Bean的標簽,文中的示例代碼講解詳細,對我們學習Spring有一定的幫助,快跟隨小編一起學習學習吧
    2022-07-07
  • 詳解Redis 緩存 + Spring 的集成示例

    詳解Redis 緩存 + Spring 的集成示例

    本篇文章主要介紹了Redis 緩存 + Spring 的集成示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java如何利用CompletableFuture描述任務之間的關系

    Java如何利用CompletableFuture描述任務之間的關系

    Java如何根據(jù)線程的執(zhí)行結果執(zhí)行下一步動作呢,F(xiàn)uture的另一個實現(xiàn)類CompletableFuture能夠優(yōu)雅的解決異步化問題,下面就跟隨小編一起了解一下吧
    2023-07-07
  • Mybatis傳遞多個參數(shù)的解決辦法(三種)

    Mybatis傳遞多個參數(shù)的解決辦法(三種)

    這篇文章主要介紹了Mybatis傳遞多個參數(shù)的解決辦法(三種),個人覺得第三種解決辦法比較好用,有需要的朋友一起學習吧
    2016-05-05
  • Spring?自定義propertyEditor的示例代碼

    Spring?自定義propertyEditor的示例代碼

    這篇文章主要介紹了Spring?自定義propertyEditor的示例代碼,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • java中使用POI生成Excel并導出過程

    java中使用POI生成Excel并導出過程

    這篇文章主要介紹了java中使用POI生成Excel并導出過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Spring實現(xiàn)上拉刷新和下拉加載效果

    Spring實現(xiàn)上拉刷新和下拉加載效果

    這篇文章主要為大家詳細介紹了Spring實現(xiàn)上拉刷新和下拉加載效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • JavaScript中的Map用法完全指南

    JavaScript中的Map用法完全指南

    這篇文章主要介紹了JavaScript中Map用法的相關資料,通過實例講解了Map的創(chuàng)建、常用方法和迭代方式,還探討了Map與對象的區(qū)別,并通過一個例子展示了如何使用Map來統(tǒng)計字符出現(xiàn)的次數(shù),需要的朋友可以參考下
    2025-03-03
  • eclipse啟動tomcat無法訪問的解決方法

    eclipse啟動tomcat無法訪問的解決方法

    這篇文章介紹了eclipse啟動tomcat無法訪問的解決方法,有需要的朋友可以參考一下
    2013-10-10

最新評論

电白县| 胶州市| 秭归县| 拉萨市| 湘潭市| 富源县| 天柱县| 合川市| 北海市| 宝山区| 星子县| 兰西县| 建阳市| 深州市| 鄂伦春自治旗| 威宁| 长武县| 禄丰县| 尤溪县| 上蔡县| 姚安县| 于都县| 大名县| 西贡区| 太和县| 大新县| 集安市| 白水县| 榆社县| 长岭县| 佳木斯市| 乌兰浩特市| 东平县| 义乌市| 广宁县| 文昌市| 重庆市| 邹城市| 泽州县| 界首市| 日照市|