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

springboot中如何判斷某個bean是否存在

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

如何判斷某個bean是否存在

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

使用@Bean的好處與壞處

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

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

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

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

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

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

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

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

相關(guān)文章

  • 淺談基于Token的WEB后臺認(rèn)證機制

    淺談基于Token的WEB后臺認(rèn)證機制

    這篇文章主要介紹了淺談基于Token的WEB后臺認(rèn)證機制,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Java并發(fā)工具之CountDownLatch使用詳解

    Java并發(fā)工具之CountDownLatch使用詳解

    這篇文章主要介紹了Java并發(fā)工具之CountDownLatch使用詳解,通過使用 CountDownLatch可以使當(dāng)前線程阻塞,等待其他線程完成給定任務(wù),可以類比旅游團導(dǎo)游要等待所有的游客到齊后才能去下一個景點,需要的朋友可以參考下
    2023-12-12
  • SpringBoot實現(xiàn)列表數(shù)據(jù)導(dǎo)出為Excel文件

    SpringBoot實現(xiàn)列表數(shù)據(jù)導(dǎo)出為Excel文件

    這篇文章主要為大家詳細(xì)介紹了在Spring?Boot框架中如何將列表數(shù)據(jù)導(dǎo)出為Excel文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2024-02-02
  • SpringBoot中打印SQL語句的幾種方法實現(xiàn)

    SpringBoot中打印SQL語句的幾種方法實現(xiàn)

    本文主要介紹了SpringBoot中打印SQL語句的幾種方法實現(xiàn),,通過打印SQL語句可以幫助開發(fā)人員快速了解數(shù)據(jù)庫的操作情況,進(jìn)而進(jìn)行性能分析和調(diào)試,感興趣的可以了解一下
    2023-11-11
  • Java中的LinkedHashMap源碼詳解

    Java中的LinkedHashMap源碼詳解

    這篇文章主要介紹了Java中的LinkedHashMap源碼詳解,LinkedHashMap的實現(xiàn)方式是將所有的Entry節(jié)點鏈入一個雙向鏈表,并且它的底層數(shù)據(jù)結(jié)構(gòu)是HashMap,因此,LinkedHashMap具有HashMap的所有特性,但在存取元素的細(xì)節(jié)實現(xiàn)上有所不同,需要的朋友可以參考下
    2023-09-09
  • java.io.File的renameTo方法移動文件失敗的解決方案

    java.io.File的renameTo方法移動文件失敗的解決方案

    這篇文章主要介紹了java.io.File的renameTo方法移動文件失敗的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java中接口Set的特點及方法說明

    Java中接口Set的特點及方法說明

    這篇文章主要介紹了Java中接口Set的特點及方法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java Ribbon負(fù)載均衡詳細(xì)講解

    Java Ribbon負(fù)載均衡詳細(xì)講解

    Ribbon其實就是一個軟負(fù)載均衡的客戶端組件,他可以和其他所需請求的客戶端結(jié)合使用,這篇文章主要介紹了Ribbon負(fù)載均衡服務(wù)調(diào)用案例代碼,需要的朋友可以參考下
    2023-01-01
  • myatisplus的saveOrUpdate的提交總是update問題

    myatisplus的saveOrUpdate的提交總是update問題

    這篇文章主要介紹了myatisplus的saveOrUpdate的提交總是update問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 用java實現(xiàn)楊輝三角的示例代碼

    用java實現(xiàn)楊輝三角的示例代碼

    本篇文章主要介紹了用java實現(xiàn)楊輝三角的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01

最新評論