如果您使用的是 Spring,
它有一个叫做AnnotatedTypeScanner
类的东西。
这个类内部使用
ClassPathScanningCandidateComponentProvider
此类具有用于实际扫描类路径资源的代码。它通过使用运行时可用的类元数据来做到这一点。
可以简单地扩展此类或使用相同的类进行扫描。下面是构造函数定义。
/**
* 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;
}