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

SpringBoot中@ComponentScan注解過濾排除不加載某個類的3種方法

 更新時間:2023年07月31日 11:10:45   作者:草青工作室  
這篇文章主要給大家介紹了關(guān)于SpringBoot中@ComponentScan注解過濾排除不加載某個類的3種方法,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用SpringBoot具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

SpringBoot—@ComponentScan注解過濾排除某個類的三種方法

一、引言

在引用jar包的依賴同時,經(jīng)常遇到有包引用沖突問題。一般我們的做法是在Pom文件中的dependency節(jié)點下添加exclusions配置,排除特定的包。這樣按照包做的排除范圍是比較大的,現(xiàn)在我們想只排除掉某個特定的類,這時我們怎么操作呢?

二、解決沖突的方法

方法一:pom中配置排除特定包

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>${slf4j.version}</version>
    <exclusions>
            <exclusion>
            <artifactId>slf4j-api</artifactId>
            <groupId>org.slf4j</groupId>
            </exclusion>
    </exclusions>
    </dependency>

缺點:排除的范圍比較大,不能排除指定對象;

方法二:@ComponentScan過濾特定類

@ComponentScan(value = "com.xxx",excludeFilters = {
		@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE,classes = {
				com.xxx.xxx.xxx.class,
				com.xxx.xxx.xxx.class,
                ....
		})
})
@SpringBootApplication
public class StartApplication {
	public static ApplicationContext applicationContext = null;
	public static void main(String[] args) {
		applicationContext = SpringApplication.run(StartApplication.class, args);
	}
}
  • 優(yōu)點:使用FilterType.ASSIGNABLE_TYPE配置,可以精確的排除掉特定類的加載和注入;
  • 缺點:如果有很多類需要排除的話,這種寫法就比較臃腫了;

方法三:@ComponentScan.Filter使用正則過濾特定類

@ComponentScan(value = "com.xxx",excludeFilters = {
	@ComponentScan.Filter(type = FilterType.REGEX,pattern = {
            //以下寫正則表達式,需要對目標類的完全限定名完全匹配,否則不生效
			"com.xxx.xxx.impl.service.+",
            ....
	})
})
@SpringBootApplication
public class StartApplication {
	public static ApplicationContext applicationContext = null;
	public static void main(String[] args) {
		applicationContext = SpringApplication.run(StartApplication.class, args);
	}
}

優(yōu)點:可以通過正則去匹配目標類型的完全限定名,一個表達式可以過濾很多對象;

三、總結(jié)

不同場景下按需配置即可,我遇到的問題是有那么幾十個類有沖突,不想注入這些類,這時我使用正則過濾特定類的方法解決了我的問題。

到此這篇關(guān)于SpringBoot中@ComponentScan注解過濾排除不加載某個類的3種方法的文章就介紹到這了,更多相關(guān)@ComponentScan注解過濾排除某個類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java文件IO操作教程之DirectIO的意義

    Java文件IO操作教程之DirectIO的意義

    這篇文章主要給大家介紹了關(guān)于Java文件IO操作教程之DirectIO的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Nacos?版本不一致報錯Request?nacos?server?failed解決

    Nacos?版本不一致報錯Request?nacos?server?failed解決

    這篇文章主要為大家介紹了Nacos?版本不一致報錯Request?nacos?server?failed的解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • java實現(xiàn)拉鉤網(wǎng)上的FizzBuzzWhizz問題示例

    java實現(xiàn)拉鉤網(wǎng)上的FizzBuzzWhizz問題示例

    這篇文章主要介紹了java實現(xiàn)拉鉤網(wǎng)上的FizzBuzzWhizz問題示例,需要的朋友可以參考下
    2014-05-05
  • java多線程詳細總結(jié)

    java多線程詳細總結(jié)

    以下小編就對java中的多線程進行了詳細的總結(jié)分析,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • spring容器啟動實現(xiàn)初始化某個方法(init)

    spring容器啟動實現(xiàn)初始化某個方法(init)

    這篇文章主要介紹了spring容器啟動實現(xiàn)初始化某個方法(init),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • MyBatis中多條件查詢商品的三種方法及區(qū)別

    MyBatis中多條件查詢商品的三種方法及區(qū)別

    本文主要介紹了MyBatis中多條件查詢商品的三種方法及區(qū)別,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • IntelliJ?IDEA?2022安裝注冊永久激活

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

    java開發(fā)工具IntelliJ?IDEA深受用戶喜愛,很多朋友對這個idea開發(fā)工具比較忠心,一旦有新版本發(fā)出,很多小伙伴就迫不及待的想更新,今天小編給大家?guī)砹薸dea2022.1最新永久激活碼,親測有效,喜歡的朋友快來下載體驗吧
    2022-08-08
  • @AutoConfigurationPackage與@ComponentScan注解區(qū)別

    @AutoConfigurationPackage與@ComponentScan注解區(qū)別

    這篇文章主要介紹了@AutoConfigurationPackage與@ComponentScan注解區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Java中字符編碼格式詳解

    Java中字符編碼格式詳解

    在java應(yīng)用軟件中,會有多處涉及到字符集編碼,有些地方需要進行正確的設(shè)置,有些地方需要進行一定程度的處理。本文主要給大家講解java中字符的編碼格式等相關(guān)問題
    2016-03-03
  • 關(guān)于如何正確地定義Java內(nèi)部類方法詳解

    關(guān)于如何正確地定義Java內(nèi)部類方法詳解

    在Java中,我們通常是把不同的類創(chuàng)建在不同的包里面,對于同一個包里的類來說,它們都是同一層次的,但其實還有另一種情況,有些類可以被定義在另一個類的內(nèi)部,本文將詳細帶你了解如何正確地定義Java內(nèi)部類,需要的朋友可以參考下
    2023-05-05

最新評論