最新国产好看的视频,伊人天堂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的好處與壞處

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

而@Configuration標(biāo)注在類(lèi)上,相當(dāng)于把該類(lèi)作為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的問(wèn)題,容易出現(xiàn)在于使用動(dòng)態(tài)數(shù)據(jù)源切換,繼承AbstractRoutingDataSource實(shí)現(xiàn)的方法。

為什么會(huì)出現(xiàn)這樣的一種情況,這個(gè)就歸結(jié)于springboot加載@Bean不是按照寫(xiě)代碼的順序加載的,解決的辦法也是有的使用@Order注解的或者@Bean的方法上標(biāo)識(shí)@DependsOn注解,來(lái)指定當(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)稱(chēng)NPE的,怕一下子寫(xiě)出NPE,部分的伙伴看不懂,索性就改成了空指針,在實(shí)際的開(kāi)發(fā)中,我們最討厭的就是遇到空指針了,業(yè)務(wù)跑著跑著發(fā)現(xiàn)了空指針,所以本文詳細(xì)介紹了Java如何有效的避免空指針,需要的朋友可以參考下
    2023-12-12
  • SpringBoot使用?Sleuth?進(jìn)行分布式跟蹤的過(guò)程分析

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

    Spring Boot Sleuth是一個(gè)分布式跟蹤解決方案,它可以幫助您在分布式系統(tǒng)中跟蹤請(qǐng)求并分析性能問(wèn)題,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的異常問(wèn)題

    解決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的異常問(wèn)題,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • Java利用Sping框架編寫(xiě)RPC遠(yuǎn)程過(guò)程調(diào)用服務(wù)的教程

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

    這篇文章主要介紹了Java利用Sping框架編寫(xiě)RPC遠(yuǎn)程過(guò)程調(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),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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)用戶(hù)和密碼登錄的操作方法,本文結(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ì)象類(lèi)型的元數(shù)據(jù)(字段定義、方法、常量池等元數(shù)據(jù))是分開(kāi)存儲(chǔ)的.而由于JVM對(duì)對(duì)象內(nèi)相同寬度的字段分配在一起,所以只要指定了字段類(lèi)型分配的順序,就可以計(jì)算出每種類(lèi)型字段相對(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)廣受開(kāi)發(fā)者喜愛(ài),在復(fù)雜的業(yè)務(wù)場(chǎng)景下,如何確保Spring Boot應(yīng)用的高性能和穩(wěn)定性成為了一個(gè)關(guān)鍵問(wè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ì)過(guò)程

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

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

最新評(píng)論

个旧市| 将乐县| 阜新市| 高安市| 德昌县| 东城区| 灵丘县| 塔城市| 平陆县| 清徐县| 海原县| 湟中县| 江川县| 通海县| 宁波市| 油尖旺区| 永清县| 自治县| 晴隆县| 都昌县| 玉龙| 勐海县| 凌源市| 正宁县| 双峰县| 河津市| 隆回县| 汽车| 平乐县| 承德县| 开封市| 建水县| 呼伦贝尔市| 微山县| 石泉县| 措勤县| 苏尼特右旗| 丹棱县| 叶城县| 东丰县| 无棣县|