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

詳解springboot項目啟動時如何排除用不到的bean

 更新時間:2024年01月23日 08:18:34   作者:G探險者  
使用springboot開發(fā)項目,我們有時候會排除一些項目里面用不到的bean,不然的話項目啟動會報錯,這種情況通常是發(fā)生在什么場景里呢,以及如何解決呢,今天咱們就聊一聊

springboot默認封裝了很多的組件,并且把這些組件都進行了自動化配置封裝。也就是說,只要是springboot項目,啟動類在@SpringBootApplication注解下,在不需要單獨配置bean的情況下,本項目所用到的bean在容器啟動的時候都會被自動掃描并注入到IOC容器里。這里我所說的bean主要指的是pom文件里面配置的那些starter,以及還有一些springboot默認封裝的一些組件,比如數(shù)據(jù)源,redis等一些組件。

拿數(shù)據(jù)源來說,有時候我們可能并不想使用springboot默認的數(shù)據(jù)源,該怎么辦?就需要在容器啟動的時候進行排除掉。

在這方面,@ComponentScan@SpringBootApplication 注解提供了兩種不同的方式來實現(xiàn)這個目標。

1. @ComponentScan 的 excludeFilters 屬性

@ComponentScan 注解是用于配置包掃描的注解,其中的 excludeFilters 屬性允許你排除特定類型的組件。這在你想要細粒度地控制哪些組件被掃描時非常有用。

@Configuration
@ComponentScan(basePackages = "com.example",
        excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = ExcludedClass.class))
public class YourConfigurationClass {
    // Your configuration code here
}

在這個例子中,ExcludedClass 類及其子類將被排除在組件掃描之外。

2. @SpringBootApplication 的 exclude 屬性

@SpringBootApplication 是一個復合注解,它包含了 @ComponentScan 注解,同時還包含了其他元數(shù)據(jù),比如 @EnableAutoConfiguration,用于自動配置。通過 exclude 屬性,你可以在項目的啟動類上直接排除自動配置類。

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class YourSpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(YourSpringBootApplication.class, args);
    }
}

在這個例子中,DataSourceAutoConfiguration 自動配置類將被排除在Spring Boot應(yīng)用程序的啟動過程中。

3、兩者的對比矩陣

特性@ComponentScanexcludeFilters@SpringBootApplicationexclude
作用范圍指定要掃描的包,可選擇性排除特定類型的組件在Spring Boot應(yīng)用程序的啟動類上使用,通常用于排除自動配置類
排除方式使用 FilterType 指定排除的類型,如 ASSIGNABLE_TYPE直接指定要排除的自動配置類的 Class 對象
適用場景主要用于排除特定類型的組件,不僅限于自動配置類主要用于排除自動配置類,更符合Spring Boot的整體結(jié)構(gòu)
示例java @ComponentScan(basePackages = "com.example", excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = ExcludedClass.class)) java @SpringBootApplication(exclude = DataSourceAutoConfiguration.class) public class YourSpringBootApplication { public static void main(String[] args) { SpringApplication.run(YourSpringBootApplication.class, args); } }

使用這兩種方式,你可以根據(jù)具體需求靈活地排除不需要的組件或自動配置類,以定制化你的Spring Boot應(yīng)用程序。

4、小結(jié)

  • 通常情況下,springboot項目啟動時,如果不配置掃描包路徑,那么它默認是掃描和啟動類同級目錄下及其子目錄下的@Component。

  • 如果配置了掃描包路徑,那么它就會在此基礎(chǔ)上額外再去掃描配置的包路徑下的@Component

  • 所有遵循stater規(guī)范的依賴包starter本身并不會受制于啟動類@SpringBootApplication啟動類的掃描包路徑的影響,因為@EnableAutoConfiguration注解(全名org.springframework.boot.autoconfigure.EnableAutoConfiguration) 自動就會掃描

  • 需要單獨指定掃描包路徑的通常并不是一個starter,因為這些依賴或者組件包里面的@Component是散裝的,沒有被一個配置類統(tǒng)一管理,也沒有被@EnableAutoConfiguration修飾過。

以上就是springboot項目啟動時如何排除用不到的bean的詳細內(nèi)容,更多關(guān)于springboot排除用不到的bean的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java并發(fā) 線程間的等待與通知

    Java并發(fā) 線程間的等待與通知

    這篇文章主要介紹了Java并發(fā) 線程間的等待與通知,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • 基于spring+quartz的分布式定時任務(wù)框架實現(xiàn)

    基于spring+quartz的分布式定時任務(wù)框架實現(xiàn)

    在Spring中的定時任務(wù)功能,最好的辦法當然是使用Quartz來實現(xiàn)。這篇文章主要介紹了基于spring+quartz的分布式定時任務(wù)框架實現(xiàn),有興趣的可以了解一下。
    2017-01-01
  • eclipse+myeclipse 環(huán)境配置方法

    eclipse+myeclipse 環(huán)境配置方法

    eclipse+myeclipse配置環(huán)境
    2009-07-07
  • IntelliJ?IDEA?2022安裝注冊永久激活

    IntelliJ?IDEA?2022安裝注冊永久激活

    java開發(fā)工具IntelliJ?IDEA深受用戶喜愛,很多朋友對這個idea開發(fā)工具比較忠心,一旦有新版本發(fā)出,很多小伙伴就迫不及待的想更新,今天小編給大家?guī)砹薸dea2022.1最新永久激活碼,親測有效,喜歡的朋友快來下載體驗吧
    2022-08-08
  • 解決try-catch捕獲異常信息后Spring事務(wù)失效的問題

    解決try-catch捕獲異常信息后Spring事務(wù)失效的問題

    這篇文章主要介紹了解決try-catch捕獲異常信息后Spring事務(wù)失效的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 在IntelliJ?IDEA中配置Git過程

    在IntelliJ?IDEA中配置Git過程

    本文介紹了在IntelliJ?IDEA中配置Git的全過程,包括安裝Git、在IDEA中配置Git路徑以及在項目中啟用Git,具體步驟分為三步:安裝Git,配置IDEA中的Git路徑,并在項目中啟用Git,最后,還介紹了基本操作與進階配置,如提交代碼、推送/拉取代碼、設(shè)置Git用戶名等
    2026-04-04
  • 淺談Java 線程池線程數(shù)怎么定

    淺談Java 線程池線程數(shù)怎么定

    在 Java 后端開發(fā)中,線程池幾乎是必不可少的基礎(chǔ)組件,但線程數(shù)該如何配置卻常常讓人困惑,不同任務(wù)對 CPU 的使用方式差異很大,直接決定了線程池的合理線程數(shù),本文從 IO 密集型、CPU 密集型以及混合型任務(wù)三種常見場景出發(fā),下面就來詳細了解一下
    2026-02-02
  • Java RMI詳細介紹及簡單實例

    Java RMI詳細介紹及簡單實例

    這篇文章主要介紹了Java RMI詳細介紹及簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Springboot 如何關(guān)閉自動配置

    Springboot 如何關(guān)閉自動配置

    這篇文章主要介紹了Springboot 如何關(guān)閉自動配置的操作,具有很好的開車價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java的SPI機制以及基于SPI編程示例詳解

    Java的SPI機制以及基于SPI編程示例詳解

    這篇文章主要為大家介紹了Java的SPI機制以及基于SPI編程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08

最新評論

铅山县| 邻水| 梧州市| 厦门市| 屏南县| 读书| 怀来县| 洛川县| 政和县| 桃园市| 平武县| 家居| 赤壁市| 揭西县| 耒阳市| 靖安县| 彝良县| 通渭县| 鄯善县| 清丰县| 牙克石市| 海兴县| 珲春市| 灌南县| 方城县| 丹巴县| 瓮安县| 长春市| 凌源市| 桂平市| 武山县| 阳东县| 宜阳县| 惠来县| 隆安县| 天津市| 错那县| 漳州市| 托克托县| 遂溪县| 宁晋县|