關(guān)于@ComponentScan?TypeFilter自定義指定掃描bean的規(guī)則
@ComponentScan TypeFilter自定義指定掃描bean的規(guī)則
1.FilterType.CUSTOM 自定義過濾方式
@Configuration
@ComponentScan(value = "com.wjy",useDefaultFilters = false,includeFilters = {
@Filter(type = FilterType.CUSTOM,value = {MyFilterType.class})
})
public class Config {
public static void main(String[] args) {
var annotationConfigApplicationContext = new AnnotationConfigApplicationContext(Config.class);
var beanNames = annotationConfigApplicationContext.getBeanDefinitionNames();
//打印所有的掃描到的bean
Arrays.stream(beanNames).forEach(e -> System.out.println(e));
}
}自定義過濾類:所有包含“service”的類名都掃描進來
public class MyFilterType implements TypeFilter {
/**
*
* @param metadataReader 讀取到的當(dāng)前正在掃描的信息
* @param metadataReaderFactory 可以獲取到其他任何類的信息的
* @return
* @throws IOException
*/
@Override
public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException {
//獲取當(dāng)前類注解信息
var annotationMetadata = metadataReader.getAnnotationMetadata();
//獲取當(dāng)前正在掃描類信息
var classMetadata = metadataReader.getClassMetadata();
//獲取當(dāng)前類路徑
var resource = metadataReader.getResource();
if(annotationMetadata.getClassName().toLowerCase().contains("service")){
return true;
}
return false;
}
}
@ComponentScan ANNOTATION type filter requires an annotation type
異常
訪問 http://localhost/save 時 控制臺報錯
@ComponentScan ANNOTATION type filter requires an annotation type

原因
我們在SpringConfig Bean管理掃描范圍時想給不排除掉的Bean設(shè)置 ANNOTATION排除規(guī)則時,指定錯了classes屬性 的類型,所以報如上錯誤??
錯誤代碼

修改后:

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java實現(xiàn)字符串匹配求兩個字符串的最大公共子串
這篇文章主要介紹了java實現(xiàn)求兩個字符串最大公共子串的方法,詳細的描述了兩個字符串的最大公共子串算法的實現(xiàn),需要的朋友可以參考下2016-10-10
springboot整合mail實現(xiàn)郵箱的發(fā)送功能
本文分步驟給大家介紹springboot整合mail實現(xiàn)郵箱的發(fā)送功能,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-09-09
MyBatis使用嵌套查詢collection和association的實現(xiàn)
本文詳細介紹了使用MyBatis框架進行數(shù)據(jù)庫操作時,如何利用collection標(biāo)簽實現(xiàn)一對多的嵌套查詢和使用association標(biāo)簽實現(xiàn)一對一的嵌套查詢,感興趣的可以了解一下2024-09-09
list轉(zhuǎn)tree和list中查找某節(jié)點下的所有數(shù)據(jù)操作
這篇文章主要介紹了list轉(zhuǎn)tree和list中查找某節(jié)點下的所有數(shù)據(jù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
idea快速找到項目中對應(yīng)的類圖文詳解(包括源碼)
用IDEA開發(fā)Java項目時經(jīng)常會使用到各種快捷鍵,其中搜索是最常用的之一,下面這篇文章主要給大家介紹了關(guān)于idea如何快速找到項目中對應(yīng)的類(包括源碼)的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-06-06
阿里nacos+springboot+dubbo2.7.3統(tǒng)一處理異常的兩種方式
本文主要介紹了阿里nacos+springboot+dubbo2.7.3統(tǒng)一處理異常的兩種方式,文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
Java新特性中Preview功能如何運行調(diào)試詳解
這篇文章主要為大家介紹了Java新特性中Preview功能如何運行調(diào)試詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10

