小编典典

在运行时扫描 Java 注释

all

如何在整个类路径中搜索带注释的类?

我正在做一个库,我希望允许用户注释他们的类,所以当 Web 应用程序启动时,我需要扫描整个类路径以获取某些注释。

我正在考虑类似 Java EE 5 Web 服务或 EJB
的新功能。@WebService您使用or注释您的类,@EJB系统会在加载时找到这些类,以便可以远程访问它们。


阅读 86

收藏
2022-05-04

共1个答案

小编典典

使用org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider

API

从基础包扫描类路径的组件提供程序。然后它将排除和包含过滤器应用于结果类以查找候选者。

ClassPathScanningCandidateComponentProvider scanner =
new ClassPathScanningCandidateComponentProvider(<DO_YOU_WANT_TO_USE_DEFALT_FILTER>);

scanner.addIncludeFilter(new AnnotationTypeFilter(<TYPE_YOUR_ANNOTATION_HERE>.class));

for (BeanDefinition bd : scanner.findCandidateComponents(<TYPE_YOUR_BASE_PACKAGE_HERE>))
    System.out.println(bd.getBeanClassName());
2022-05-04