国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

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

這篇具有很好參考價值的文章主要介紹了SpringBoot—@ComponentScan注解過濾排除不加載某個類的三種方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

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é)

不同場景下按需配置即可,我遇到的問題是有那么幾十個類有沖突,不想注入這些類,這時我使用正則過濾特定類的方法解決了我的問題。文章來源地址http://www.zghlxwxcb.cn/news/detail-607054.html

到了這里,關(guān)于SpringBoot—@ComponentScan注解過濾排除不加載某個類的三種方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java進階(1)——JVM的內(nèi)存分配 & 反射Class類的類對象 & 創(chuàng)建對象的幾種方式 & 類加載(何時進入內(nèi)存JVM)& 注解 & 反射+注解的案例

    Java進階(1)——JVM的內(nèi)存分配 & 反射Class類的類對象 & 創(chuàng)建對象的幾種方式 & 類加載(何時進入內(nèi)存JVM)& 注解 & 反射+注解的案例

    1.java運行時的內(nèi)存分配,創(chuàng)建對象時內(nèi)存分配; 2.類加載的順序,創(chuàng)建一個唯一的類的類對象; 3.創(chuàng)建對象的方式,new,Class.forName,clone; 4.什么時候加載.class文件進入JVM內(nèi)存中,看到new,Class.forName; 5.如何加載?雙親委托(委派)機制:安全;AppClassLoader; 6.反射實質(zhì):能

    2024年02月14日
    瀏覽(32)
  • Spring5學習隨筆-高級注解(@ComponentScan、@Configuration.....),替換XML配置文件

    Spring5學習隨筆-高級注解(@ComponentScan、@Configuration.....),替換XML配置文件

    學習視頻:【孫哥說Spring5:從設(shè)計模式到基本應(yīng)用到應(yīng)用級底層分析,一次深入淺出的Spring全探索。學不會Spring?只因你未遇見孫哥】 Spring在3.x提供的新的注解,用于替換XML配置文件。 問題 : 配置Bean在應(yīng)用的過程中替換了XML具體的什么內(nèi)容? AnnotationConfigApplicationContext 配

    2024年02月05日
    瀏覽(20)
  • Springboot如何判斷pom.xml中是否加載了某個jar依賴

    這里可以使用一個取巧的方法來判斷, 即通過使用上下文對象的getClassLoader().loadClass(\\\"要判斷的jar包中的標志性類Reference地址\\\");? 來加載某個jar包中的標志性類來判斷pom.xml文件中是否加載了某個依賴, 如果加載成功表示pom中加載了某個jar 依賴, 如果不成功表示沒有加載某個依賴

    2024年03月19日
    瀏覽(34)
  • mybatisPlus查詢排除某個字段

    在 MyBatis Plus 中,可以使用 @TableField 注解來排除某個字段在查詢中的使用。@TableField 注解提供了一些屬性可以用于指定字段的行為,其中 exist 屬性可以控制字段是否在 SQL 語句中出現(xiàn)。 以下是一個示例代碼,展示如何使用 @TableField 注解排除某個字段在查詢中的使用: 在上述

    2024年02月12日
    瀏覽(44)
  • spring復(fù)習:(55)注解配置的情況下@ComponentScan指定的包中的組件是怎么被注冊到容器的?

    spring復(fù)習:(55)注解配置的情況下@ComponentScan指定的包中的組件是怎么被注冊到容器的?

    配置類: 主類: 結(jié)論:是在context.refresh()處完成掃描和注冊的。 fresh()的代碼片段如下: 其中調(diào)用的invokeBeanFactoryPostProcessor代碼如下: 其中調(diào)用的靜態(tài)方法invokeBeanFactoryPostProcessors代碼如下: 其中包含如下代碼片段: invokeBeanDefinitionRegisteyPostProcessor的代碼如下: 其中調(diào)用的

    2024年02月15日
    瀏覽(18)
  • webpack:使用externals配置來排除打包后的某個依賴&插件IgnorePlugin的使用

    假設(shè),我們寫了一個庫并使用 webpack 打包輸出 bundle,但是這個庫依賴一個第三方包,比如依賴 lodash,這時候我們不想把這個庫打包進 bundle 里因為體積會變大,而且我們的主項目里已經(jīng)安裝了這個 lodash,所以依賴主項目里的 lodash 就可以了。 那我們應(yīng)該怎么樣去除打包后的

    2024年02月07日
    瀏覽(20)
  • java: 模塊循環(huán)不支持注解處理。請確保將循環(huán)中的所有模塊排除在注解處理之外

    java: 模塊循環(huán)不支持注解處理。請確保將循環(huán)中的所有模塊排除在注解處理之外

    java: 模塊循環(huán)不支持注解處理。請確保將循環(huán)中的所有模塊排除在注解處理之外 大概意思是有循環(huán)依賴問題 解決方法: 選擇模塊依賴項 找到需要解決依賴的模塊分析依賴,刪除不需要的依賴 如果出現(xiàn)其他問題,再根據(jù)提示添加依賴即可

    2024年02月16日
    瀏覽(16)
  • 如何使用ES做簡單的時間條件過濾+模糊查詢+精確匹配+關(guān)鍵字排除,查詢 elasticsearch查詢結(jié)果包含或排除某些字段、_source查詢出需要的屬性名稱

    目錄 一、時間條件過濾+模糊查詢+精確匹配+排除 1. 查詢出包含 log_geo 的數(shù)據(jù) “wildcard”: { “message”: “l(fā)og_geo” } 2. 查詢某個時間段的數(shù)據(jù) 3. 條件查詢與條件排除數(shù)據(jù) 4. from 表示起始的記錄的ID 5. size 表示顯示的記錄數(shù) 6.sort排序 desc降序、asc升序? 7.should查詢在mysql中

    2024年01月18日
    瀏覽(22)
  • 如何用css選擇器選中某個類的第一個元素

    如何用css選擇器選中某個類的第一個元素

    要將’選中’變成紅色改怎么使用css 首先想到的是 偽類選擇器 .item:first-child 但是上面這句其實是選中一下兩個條件都滿足的元素 class為 .item 的元素 是父元素第一個元素 也就是說這句加上去,不會選到任何一個元素,因為父元素 div 下的第一個元素不是 class=\\\'.item\\\' 的元素 除此

    2024年02月04日
    瀏覽(13)
  • 類的加載過程一:類的裝載/加載階段

    所謂裝載,簡而言之就是將Java類的字節(jié)碼文件加載到機器內(nèi)存中,并在內(nèi)存中構(gòu)建出Java類的原型——類模板對象。 裝載完成的操作 裝載階段,簡言之,查找并加載類的二進制數(shù)據(jù),生成Class的實例。 在加載類時,Java虛擬機必須完成以下3件事情: 通過類的全名,獲取類的二

    2023年04月09日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包