亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決使用@Component會導(dǎo)致spring.factories中的EnableAutoConfiguration無效問題

 更新時間:2025年03月22日 15:53:23   作者:brucelwl  
這篇文章主要介紹了解決使用@Component會導(dǎo)致spring.factories中的EnableAutoConfiguration無效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

使用@Component會導(dǎo)致spring.factories中的EnableAutoConfiguration無效

本文基于SpringBoot 2.6.0分析,(但實(shí)際上目前所有版本都存在這個問題),使用@Component會導(dǎo)致spring.factories中的EnableAutoConfiguration無效

在spring.factories中通過org.springframework.boot.autoconfigure.EnableAutoConfiguration配置自動裝配類時,bean名稱是全類名。

加上如下兩個注解都不會出現(xiàn)被實(shí)例化兩次的問題

  • 1.@Configuration
  • 2.@Component

但使用@Component注解會導(dǎo)致在spring.factories中配置的無效,bean名稱變?yōu)轭惷鬃帜感?,?code>@Configuration不會,

原因是:

  • 在做類路徑bean掃描時,會過濾掉含@Configuration并配置在spring.factories中的類
  • 參見:org.springframework.boot.autoconfigure.AutoConfigurationExcludeFilter,由AutoConfigurationImportSelector去加載。
@Configuration
//@Component
public class MyCustomAutoConfiguration {

    public MyCustomAutoConfiguration() {
        System.out.println(MyCustomAutoConfiguration.class.getName() + " init...");
    }
}

為什么類上標(biāo)記@Component會導(dǎo)致其在spring.factories中配置無效

原因在:

  • 于Spring執(zhí)行包掃描的時候,會將掃描的類包裝成ConfigurationClass進(jìn)行解析,解析之前會從Map(ConfigurationClassParser#configurationClasses)中獲取判斷之前是否已經(jīng)解析過,如果已經(jīng)解析過則跳過,解析之后會存放到Map中保存。
  • 當(dāng)使用@Component會被Spring掃描到, 之后AutoConfigurationImportSelector加載spring.factories中的EnableAutoConfiguration時雖然能加載到,但是在處理時判斷之前實(shí)際上已經(jīng)處理過,所以不再被處理。

總結(jié)

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

相關(guān)文章

  • 不知道面試會不會問Lambda怎么用(推薦)

    不知道面試會不會問Lambda怎么用(推薦)

    這篇文章主要介紹了Lambda表達(dá)式用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 圖解分析Javaweb進(jìn)程與線程

    圖解分析Javaweb進(jìn)程與線程

    這篇文章主要介紹了Javaweb進(jìn)程與線程的知識,本篇文章通過簡要的案例,講解了它的基礎(chǔ)原理與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2022-03-03
  • Java實(shí)現(xiàn)動態(tài)數(shù)據(jù)源切換的實(shí)踐指南

    Java實(shí)現(xiàn)動態(tài)數(shù)據(jù)源切換的實(shí)踐指南

    在 Java 開發(fā)中,許多場景需要訪問多個數(shù)據(jù)庫,例如多租戶系統(tǒng)或讀寫分離架構(gòu),為了靈活高效地管理這些場景,動態(tài)數(shù)據(jù)源切換技術(shù)應(yīng)運(yùn)而生,所以本文給大家介紹了Java實(shí)現(xiàn)動態(tài)數(shù)據(jù)源切換的實(shí)踐指南,需要的朋友可以參考下
    2025-03-03
  • Java利用Jackson序列化實(shí)現(xiàn)數(shù)據(jù)脫敏

    Java利用Jackson序列化實(shí)現(xiàn)數(shù)據(jù)脫敏

    這篇文章主要介紹了利用Jackson序列化實(shí)現(xiàn)數(shù)據(jù)脫敏,首先在需要進(jìn)行脫敏的VO字段上面標(biāo)注相關(guān)脫敏注解,具體實(shí)例代碼文中給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • 詳解Spring的StringUtils踩坑記錄

    詳解Spring的StringUtils踩坑記錄

    這篇文章主要介紹了詳解Spring的StringUtils踩坑記錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 一篇文章幫你搞懂什么是java的進(jìn)程和線程

    一篇文章幫你搞懂什么是java的進(jìn)程和線程

    這篇文章主要介紹了java 線程詳解及線程與進(jìn)程的區(qū)別的相關(guān)資料,網(wǎng)上關(guān)于java 線程的資料很多,對于進(jìn)程的資料很是,這里就整理下,需要的朋友可以參考下
    2021-08-08
  • JavaBean實(shí)體類處理外鍵過程解析

    JavaBean實(shí)體類處理外鍵過程解析

    這篇文章主要介紹了JavaBean實(shí)體類處理外鍵過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Java實(shí)現(xiàn)簡單樹結(jié)構(gòu)

    Java實(shí)現(xiàn)簡單樹結(jié)構(gòu)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡單樹結(jié)構(gòu)的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Java多線程環(huán)境下死鎖模擬

    Java多線程環(huán)境下死鎖模擬

    這篇文章主要介紹了模擬Java多線程環(huán)境下的死鎖,文章介紹一些死鎖的產(chǎn)生條件的相關(guān)資料,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你有所幫助
    2021-12-12
  • java開發(fā)AOP面向切面編程入門

    java開發(fā)AOP面向切面編程入門

    這篇文章主要介紹了java開發(fā)的AOP面向切面編程入門的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步學(xué)有所得
    2021-10-10

最新評論