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

SpringBoot自動配置排除的五種方式

 更新時間:2026年04月15日 09:41:57   作者:希望永不加班  
本文詳細介紹了SpringBoot自動配置排除的核心知識點,包括自動配置的基本邏輯、為何需要排除自動配置、五種排除自動配置的方式,需要的朋友可以參考下

本文聚焦 SpringBoot 自動配置排除的核心知識點,涵蓋基礎(chǔ)認知、5種實戰(zhàn)排除方式、高頻場景、排錯技巧及面試考點,精簡冗余內(nèi)容,保留實戰(zhàn)與面試核心,復(fù)制可用、易懂好記。

一、自動配置核心邏輯

1. 自動配置本質(zhì)

SpringBoot “開箱即用” 依賴自動配置:引入 Starter 依賴(如 web、redis),啟動時自動加載對應(yīng)配置類、創(chuàng)建 Bean,無需手動配置。核心載體是 spring-boot-autoconfigure 依賴中的自動配置類(如RedisAutoConfiguration)。

2. 自動配置觸發(fā)條件

1. 依賴存在:對應(yīng) Starter 或自動配置類所在 jar 包已加載;

2. 條件匹配:自動配置類上的 @Conditional 系列注解(如 @ConditionalOnClass)匹配成功。

3. 為什么需要排除自動配置?

依賴傳遞導(dǎo)致多余加載、自定義 Bean 沖突、多環(huán)境輕量化啟動、第三方 Starter 沖突、自定義 Starter 開發(fā),避免項目啟動報錯、資源浪費。

二、5種排除自動配置方式

方式1:@SpringBootApplication(exclude)

直接在啟動類注解中指定排除的自動配置類(Class 對象),適合固定排除少量配置。

@SpringBootApplication(exclude = {
        DataSourceAutoConfiguration.class, // 排除數(shù)據(jù)源配置
        RedisAutoConfiguration.class      // 排除Redis配置
})
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

注意:全局生效,需確保配置類可導(dǎo)入,不支持多環(huán)境。

方式2:@SpringBootApplication(excludeName)

用全類名字符串指定排除類,適配包權(quán)限限制、版本變更過渡場景。

@SpringBootApplication(excludeName = {
        "org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration"
})
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

注意:全類名需拼寫正確,不推薦常規(guī)使用。

方式3:配置文件排除

通過 yml/properties 配置,支持多環(huán)境動態(tài)切換,無需修改代碼,微服務(wù)首選。

# application.yml(推薦)
spring:
  autoconfigure:
    exclude:
      - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
      - org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration

多環(huán)境配置:分別在 application-dev.yml、application-prod.yml 中配置,啟動時指定環(huán)境(--spring.profiles.active=dev)。

方式4:@EnableAutoConfiguration(exclude)

@SpringBootApplication 底層注解,適合非標準啟動類、自定義配置擴展。

@Configuration
@ComponentScan(basePackages = "com.example.demo")
@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class)
public class MyConfig {
    // 自定義Bean配置
}

方式5:autoconfigure.exclude 文件

SpringBoot 2.0+ 支持,全局統(tǒng)一排除,適合自定義 Starter、多模塊統(tǒng)一配置。

操作:resources/META-INF/spring/ 下創(chuàng)建 autoconfigure.exclude 文件,一行一個全類名。

org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration

三、5種方式對比

排除方式優(yōu)先級核心優(yōu)點適用場景
@SpringBootApplication(exclude)最高簡單直觀、精準普通項目、固定排除
@SpringBootApplication(excludeName)最高無需導(dǎo)入Class無法導(dǎo)入Class場景
配置文件排除支持多環(huán)境、靈活微服務(wù)、多環(huán)境
@EnableAutoConfiguration(exclude)最高底層擴展非標準啟動類
autoconfigure.exclude 文件最低全局統(tǒng)一自定義Starter

四、實戰(zhàn)排除清單

1. 非Web服務(wù)(排除Tomcat)

@SpringBootApplication(exclude = {
        ServletWebServerFactoryAutoConfiguration.class,
        WebMvcAutoConfiguration.class
})

2. 排除數(shù)據(jù)庫配置(解決數(shù)據(jù)源報錯)

@SpringBootApplication(exclude = {
        DataSourceAutoConfiguration.class,
        DataSourceTransactionManagerAutoConfiguration.class
})

3. 排除Redis配置(自定義RedisTemplate)

@SpringBootApplication(exclude = {
        RedisAutoConfiguration.class,
        RedisRepositoriesAutoConfiguration.class
})

五、常見問題

1. 排除失敗

原因:全類名拼寫錯誤、排除類不正確、依賴傳遞、優(yōu)先級問題;
技巧:添加 debug=true 查看自動配置報告,核對全類名和依賴樹。

2. 配置文件排除不生效

原因:路徑/文件名錯誤、未指定環(huán)境、注解覆蓋;
技巧:確認配置文件加載日志,去掉注解排除測試。

3. 排除后Bean不存在報錯

原因:排除了依賴Bean的自動配置類;
技巧:保留必要配置類或刪除依賴該Bean的代碼。

總結(jié)

SpringBoot 自動配置排除,看似簡單,卻是解決項目啟動報錯、避免Bean沖突的核心技巧,也是面試高頻考點。

其實不用死記硬背,記住兩個核心場景就夠:普通項目用 @SpringBootApplication(exclude),微服務(wù)多環(huán)境用配置文件排除,剩下的場景按需選擇即可。

以上就是SpringBoot自動配置排除的五種方式的詳細內(nèi)容,更多關(guān)于SpringBoot自動配置排除的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java數(shù)據(jù)導(dǎo)出到Word的實現(xiàn)方案

    Java數(shù)據(jù)導(dǎo)出到Word的實現(xiàn)方案

    最近業(yè)務(wù)方說周報、月報讓他們很頭疼,每次都要統(tǒng)計數(shù)據(jù)后,手動錄入到word文檔里,希望我負責(zé)的平臺能夠提供這個功能,所以本文給大家介紹了Java數(shù)據(jù)導(dǎo)出到Word的實現(xiàn)方案,需要的朋友可以參考下
    2025-08-08
  • java連接mongoDB并進行增刪改查操作實例詳解

    java連接mongoDB并進行增刪改查操作實例詳解

    這篇文章主要介紹了java連接mongoDB并進行增刪改查操作,結(jié)合實例形式詳細分析了java環(huán)境下MongoDB擴展包的下載、安裝及操作MongoDB連接、增刪改查等相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • java性能優(yōu)化之代碼緩存優(yōu)化

    java性能優(yōu)化之代碼緩存優(yōu)化

    這篇文章主要介紹了java性能優(yōu)化之代碼緩存優(yōu)化,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • Jackson的用法實例分析

    Jackson的用法實例分析

    這篇文章主要介紹了Jackson的用法實例分析,用于處理Java的json格式數(shù)據(jù)非常實用,需要的朋友可以參考下
    2014-08-08
  • 使用Java高效讀取Word文檔的實戰(zhàn)指南

    使用Java高效讀取Word文檔的實戰(zhàn)指南

    在當今的企業(yè)級應(yīng)用中,Word文檔作為信息承載和交流的重要載體,其自動化處理需求日益增長,無論是批量數(shù)據(jù)提取、內(nèi)容審計,還是文檔智能分析,都離不開對Word文檔內(nèi)容的有效讀取,本文將深入探討如何使用Java高效、準確地 讀取Word文件,需要的朋友可以參考下
    2025-09-09
  • 用Set類判斷Map里key是否存在的示例代碼

    用Set類判斷Map里key是否存在的示例代碼

    本篇文章主要是對用Set類判斷Map里key是否存在的示例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • Java 實現(xiàn)貪吃蛇游戲的示例

    Java 實現(xiàn)貪吃蛇游戲的示例

    這篇文章主要介紹了Java 如何實現(xiàn)貪吃蛇游戲,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • Java日常練習(xí)題,每天進步一點點(13)

    Java日常練習(xí)題,每天進步一點點(13)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • java解析多層嵌套json字符串問題

    java解析多層嵌套json字符串問題

    這篇文章主要介紹了java解析多層嵌套json字符串問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java高效實現(xiàn)復(fù)制PPT(PowerPoint)幻燈片

    Java高效實現(xiàn)復(fù)制PPT(PowerPoint)幻燈片

    在日常的開發(fā)工作中,我們經(jīng)常會遇到需要對Office文檔進行編程處理的需求,本文將為您揭示如何利用強大的 Spire.Presentation for Java進行PPT復(fù)制,有需要的小伙伴可以了解下
    2025-09-09

最新評論

台南县| 阿城市| 广南县| 财经| 兴城市| 山丹县| 嫩江县| 石渠县| 河东区| 固原市| 河间市| 光泽县| 荔浦县| 清苑县| 苏州市| 新安县| 龙门县| 麻江县| 武功县| 万山特区| 和林格尔县| 时尚| 南丰县| 湖南省| 东山县| 兰溪市| 辽宁省| 潮安县| 临西县| 上蔡县| 大田县| 凤庆县| 柳江县| 安新县| 忻城县| 台南市| 措美县| 邵东县| 瓦房店市| 什邡市| 蛟河市|