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

springboot中如何判斷某個(gè)bean是否存在

 更新時(shí)間:2022年03月24日 11:12:36   作者:StephenJava  
這篇文章主要介紹了springboot中如何判斷某個(gè)bean是否存在,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

如何判斷某個(gè)bean是否存在

            ApplicationContext ctx = SpringUtil.getContext();
            String[] beanNames = ctx.getBeanDefinitionNames();
            Arrays.sort(beanNames);
            for (String beanName : beanNames) {
                //全部bean
                System.out.println(beanName);
            }
 
        //某個(gè)bean
        try {
           SpringUtil.getContext().getBean("***");
        } catch (Exception e) {
            throw new Exception("*** Bean 不存在");
        }

使用@Bean的好處與壞處

相信使用過springboot 的人都有用過@Configuration加上@Bean去注冊(cè)一個(gè)bean 對(duì)象,這樣我們就不用再去寫xml文件去注冊(cè)bean對(duì)象。

而@Configuration標(biāo)注在類上,相當(dāng)于把該類作為spring的xml配置文件中的< beans>,作用為:配置spring容器(應(yīng)用上下文),

@Bean標(biāo)注在方法上(返回某個(gè)實(shí)例的方法),等價(jià)于spring的xml配置文件中的< bean>,作用為:注冊(cè)bean對(duì)象。

那使用xml注冊(cè)bean對(duì)象和使用注解@Bean注冊(cè)對(duì)象之間有什么明顯的區(qū)別呢?

比較明顯的區(qū)別在于加載對(duì)象存在一定的先后順序時(shí)會(huì)出現(xiàn)一個(gè)循環(huán)加載Bean的問題,容易出現(xiàn)在于使用動(dòng)態(tài)數(shù)據(jù)源切換,繼承AbstractRoutingDataSource實(shí)現(xiàn)的方法。

為什么會(huì)出現(xiàn)這樣的一種情況,這個(gè)就歸結(jié)于springboot加載@Bean不是按照寫代碼的順序加載的,解決的辦法也是有的使用@Order注解的或者@Bean的方法上標(biāo)識(shí)@DependsOn注解,來指定當(dāng)前Bean實(shí)例化時(shí)需要觸發(fā)哪些Bean的提前實(shí)例化。

所以我還是建議在容易出現(xiàn)循環(huán)加載的地方使用xml配置文件初始化bean,然后在Application.class中添加上@ImportResource導(dǎo)入相應(yīng)的xml文件。

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

相關(guān)文章

  • 詳解Java如何有效避免空指針

    詳解Java如何有效避免空指針

    空指針,也就是NullPointerException 簡(jiǎn)稱NPE的,怕一下子寫出NPE,部分的伙伴看不懂,索性就改成了空指針,在實(shí)際的開發(fā)中,我們最討厭的就是遇到空指針了,業(yè)務(wù)跑著跑著發(fā)現(xiàn)了空指針,所以本文詳細(xì)介紹了Java如何有效的避免空指針,需要的朋友可以參考下
    2023-12-12
  • SpringBoot使用?Sleuth?進(jìn)行分布式跟蹤的過程分析

    SpringBoot使用?Sleuth?進(jìn)行分布式跟蹤的過程分析

    Spring Boot Sleuth是一個(gè)分布式跟蹤解決方案,它可以幫助您在分布式系統(tǒng)中跟蹤請(qǐng)求并分析性能問題,Spring Boot Sleuth是Spring Cloud的一部分,它提供了分布式跟蹤的功能,本文將介紹如何在Spring Boot應(yīng)用程序中使用Sleuth進(jìn)行分布式跟蹤,感興趣的朋友一起看看吧
    2023-10-10
  • 解決Eclipse/STS中出現(xiàn)Resource is out of sync with the file system的異常問題

    解決Eclipse/STS中出現(xiàn)Resource is out of sync with the file system

    今天小編就為大家分享一篇關(guān)于解決Eclipse/STS中出現(xiàn)Resource is out of sync with the file system的異常問題,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java利用Sping框架編寫RPC遠(yuǎn)程過程調(diào)用服務(wù)的教程

    Java利用Sping框架編寫RPC遠(yuǎn)程過程調(diào)用服務(wù)的教程

    這篇文章主要介紹了Java利用Sping框架編寫RPC遠(yuǎn)程過程調(diào)用服務(wù)的教程,包括項(xiàng)目管理工具M(jìn)aven的搭配使用方法,需要的朋友可以參考下
    2016-06-06
  • 詳解Java創(chuàng)建多線程的四種方式以及優(yōu)缺點(diǎn)

    詳解Java創(chuàng)建多線程的四種方式以及優(yōu)缺點(diǎn)

    這篇文章主要介紹了Java創(chuàng)建多線程的四種方式以及優(yōu)缺點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • SpringBoot security安全認(rèn)證登錄的實(shí)現(xiàn)方法

    SpringBoot security安全認(rèn)證登錄的實(shí)現(xiàn)方法

    這篇文章主要介紹了SpringBoot security安全認(rèn)證登錄的實(shí)現(xiàn)方法,也就是使用默認(rèn)用戶和密碼登錄的操作方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Java對(duì)象在內(nèi)存中的布局是如何實(shí)現(xiàn)的?

    Java對(duì)象在內(nèi)存中的布局是如何實(shí)現(xiàn)的?

    Java對(duì)象在內(nèi)存中屬于oop-klass二分模型,即對(duì)象的實(shí)例數(shù)據(jù)和對(duì)象類型的元數(shù)據(jù)(字段定義、方法、常量池等元數(shù)據(jù))是分開存儲(chǔ)的.而由于JVM對(duì)對(duì)象內(nèi)相同寬度的字段分配在一起,所以只要指定了字段類型分配的順序,就可以計(jì)算出每種類型字段相對(duì)于當(dāng)前對(duì)象的偏移起始位置
    2021-06-06
  • Netty分布式pipeline管道Handler的添加代碼跟蹤解析

    Netty分布式pipeline管道Handler的添加代碼跟蹤解析

    這篇文章主要介紹了Netty分布式pipeline管道Handler的添加代碼跟蹤解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • 在SpringBoot項(xiàng)目中如何實(shí)現(xiàn)線程池的動(dòng)態(tài)監(jiān)控

    在SpringBoot項(xiàng)目中如何實(shí)現(xiàn)線程池的動(dòng)態(tài)監(jiān)控

    Spring Boot因其簡(jiǎn)便、高效的特點(diǎn)廣受開發(fā)者喜愛,在復(fù)雜的業(yè)務(wù)場(chǎng)景下,如何確保Spring Boot應(yīng)用的高性能和穩(wěn)定性成為了一個(gè)關(guān)鍵問題,其中,線程池的管理策略直接影響到系統(tǒng)的吞吐量和資源利用效率,本文將重點(diǎn)探討在Spring Boot項(xiàng)目中,如何實(shí)現(xiàn)線程池的動(dòng)態(tài)監(jiān)控
    2023-10-10
  • SpringBoot3整合SpringDoc OpenAPI生成接口文檔的詳細(xì)過程

    SpringBoot3整合SpringDoc OpenAPI生成接口文檔的詳細(xì)過程

    SpringDoc OpenAPI 是一個(gè)強(qiáng)大的工具,能夠幫助我們輕松生成 OpenAPI 3.0 規(guī)范的文檔,并提供交互式的 Swagger UI 界面,所以本文給大家介紹了SpringBoot3整合SpringDoc OpenAPI生成接口文檔的詳細(xì)過程,需要的朋友可以參考下
    2024-07-07

最新評(píng)論

龙陵县| 大安市| 甘泉县| 西盟| 南投县| 台中市| 明光市| 南江县| 宣化县| 松阳县| 六枝特区| 治县。| 呼图壁县| 七台河市| 桂阳县| 尼木县| 灵台县| 霸州市| 敦化市| 东阳市| 牙克石市| 突泉县| 徐水县| 普安县| 新兴县| 上栗县| 土默特右旗| 方山县| 英吉沙县| 玉溪市| 吉水县| 扶风县| 宣城市| 广灵县| 双牌县| 定州市| 余干县| 云龙县| 宣武区| 双鸭山市| 鲁山县|