Spring имеет класс, называемый AnnotatedTypeScanner
.
Этот класс внутренне использует
ClassPathScanningCandidateComponentProvider
Этот класс имеет код для фактического сканирования ресурсов classpath . Это делается с помощью метаданных класса, доступных во время выполнения.
Можно просто расширить этот класс или использовать тот же класс для сканирования. Ниже приведено определение конструктора.
/**
* Creates a new {@link AnnotatedTypeScanner} for the given annotation types.
*
* @param considerInterfaces whether to consider interfaces as well.
* @param annotationTypes the annotations to scan for.
*/
public AnnotatedTypeScanner(boolean considerInterfaces, Class<? extends Annotation>... annotationTypes) {
this.annotationTypess = Arrays.asList(annotationTypes);
this.considerInterfaces = considerInterfaces;
}