關(guān)于@ComponentScan?TypeFilter自定義指定掃描bean的規(guī)則
@ComponentScan TypeFilter自定義指定掃描bean的規(guī)則
1.FilterType.CUSTOM 自定義過(guò)濾方式
@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)); } }
自定義過(guò)濾類:所有包含“service”的類名都掃描進(jìn)來(lái)
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
異常
訪問(wèn) http://localhost/save 時(shí) 控制臺(tái)報(bào)錯(cuò)
@ComponentScan ANNOTATION type filter requires an annotation type
原因
我們?cè)赟pringConfig Bean管理掃描范圍時(shí)想給不排除掉的Bean設(shè)置 ANNOTATION排除規(guī)則時(shí),指定錯(cuò)了classes屬性 的類型,所以報(bào)如上錯(cuò)誤??
錯(cuò)誤代碼
修改后:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java實(shí)現(xiàn)字符串匹配求兩個(gè)字符串的最大公共子串
這篇文章主要介紹了java實(shí)現(xiàn)求兩個(gè)字符串最大公共子串的方法,詳細(xì)的描述了兩個(gè)字符串的最大公共子串算法的實(shí)現(xiàn),需要的朋友可以參考下2016-10-10springboot整合mail實(shí)現(xiàn)郵箱的發(fā)送功能
本文分步驟給大家介紹springboot整合mail實(shí)現(xiàn)郵箱的發(fā)送功能,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-09-09MyBatis使用嵌套查詢collection和association的實(shí)現(xiàn)
本文詳細(xì)介紹了使用MyBatis框架進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),如何利用collection標(biāo)簽實(shí)現(xiàn)一對(duì)多的嵌套查詢和使用association標(biāo)簽實(shí)現(xiàn)一對(duì)一的嵌套查詢,感興趣的可以了解一下2024-09-09list轉(zhuǎn)tree和list中查找某節(jié)點(diǎn)下的所有數(shù)據(jù)操作
這篇文章主要介紹了list轉(zhuǎn)tree和list中查找某節(jié)點(diǎn)下的所有數(shù)據(jù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09idea快速找到項(xiàng)目中對(duì)應(yīng)的類圖文詳解(包括源碼)
用IDEA開(kāi)發(fā)Java項(xiàng)目時(shí)經(jīng)常會(huì)使用到各種快捷鍵,其中搜索是最常用的之一,下面這篇文章主要給大家介紹了關(guān)于idea如何快速找到項(xiàng)目中對(duì)應(yīng)的類(包括源碼)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06阿里nacos+springboot+dubbo2.7.3統(tǒng)一處理異常的兩種方式
本文主要介紹了阿里nacos+springboot+dubbo2.7.3統(tǒng)一處理異常的兩種方式,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Java新特性中Preview功能如何運(yùn)行調(diào)試詳解
這篇文章主要為大家介紹了Java新特性中Preview功能如何運(yùn)行調(diào)試詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10