在運行時發現帶註釋的類
要在類路徑中搜尋帶註釋的類,請考慮使用廣受好評的庫org.springframework.context.annotatio n.ClassPathScanningCandidateComponentProvider.
ClassPathScanningCandidateComponentProvider解釋
ClassPathScanningCandidateComponentProvider 利用註解的強大功能,從預先定義的基礎套件開始快速掃描類別路徑。透過對衍生類別精心應用特定的包含和排除過濾器,它會精心識別嚴格滿足搜尋條件的可行候選者。
實際實作
實例化 ClassPathScanningCandidateComponentProvider,指定是否或不使用預設過濾器。
ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(<DO_YOU_WANT_TO_USE_DEFALT_FILTER>);
定義一個AnnotationTypeFilter 來描繪目標註解。
scanner.addIncludeFilter(new AnnotationTypeFilter(<TYPE_YOUR_ANNOTATION_HERE>.class));
最後,在指定的基礎包中啟動掃描過程,收穫發現的候選類別。
for (BeanDefinition bd : scanner.findCandidateComponents(<TYPE_YOUR_BASE_PACKAGE_HERE>)) System.out.println(bd.getBeanClassName());
透過 ClassPathScanningCandidateComponentProvider 和適當的整合配置中,您可以有效地掃描類別路徑並識別帶有您選擇的註解的類別。
以上是如何使用ClassPathScanningCandidateComponentProvider在運行時有效率地發現帶註解的類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!