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

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

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

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

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

在spring.factories中通過(guò)org.springframework.boot.autoconfigure.EnableAutoConfiguration配置自動(dòng)裝配類時(shí),bean名稱是全類名。

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

  • 1.@Configuration
  • 2.@Component

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

原因是:

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

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

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

原因在:

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

總結(jié)

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

相關(guān)文章

  • 不知道面試會(huì)不會(huì)問(wèn)Lambda怎么用(推薦)

    不知道面試會(huì)不會(huì)問(wèn)Lambda怎么用(推薦)

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

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

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

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

    在 Java 開(kāi)發(fā)中,許多場(chǎng)景需要訪問(wèn)多個(gè)數(shù)據(jù)庫(kù),例如多租戶系統(tǒng)或讀寫分離架構(gòu),為了靈活高效地管理這些場(chǎng)景,動(dòng)態(tài)數(shù)據(jù)源切換技術(shù)應(yīng)運(yùn)而生,所以本文給大家介紹了Java實(shí)現(xiàn)動(dòng)態(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踩坑記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 一篇文章幫你搞懂什么是java的進(jìn)程和線程

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

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

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

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

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

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

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

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

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

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

最新評(píng)論