在运行时扫描Java注释

在运行时扫描Java注释

对带注释的类搜索整个类路径的最佳方法是什么?

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

您知道有一个库或Java工具可以这样做吗?

编辑:我正在考虑类似JavaEE 5 Web服务或EJB的新功能。@WebService@EJB系统在加载时发现这些类,因此它们可以远程访问。


白板的微信
浏览 550回答 3
3回答

一只甜甜圈

使用org.springframework.context.annotation.ClassPathScanningCandidateComponentProviderAPI从基包中扫描类路径的组件提供程序。然后,它对结果类应用排除和包含筛选器,以查找候选项。ClassPathScanningCandidateComponentProvider&nbsp;scanner&nbsp;=new&nbsp;ClassPathScanningCandidateComponentProvider(<DO_YOU_WANT_TO_USE_DEFALT_FILTER>); scanner.addIncludeFilter(new&nbsp;AnnotationTypeFilter(<TYPE_YOUR_ANNOTATION_HERE>.class));for&nbsp;(BeanDefinition&nbsp;bd&nbsp;: &nbsp;scanner.findCandidateComponents(<TYPE_YOUR_BASE_PACKAGE_HERE>)) &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(bd.getBeanClassName());

阿波罗的战车

您可以找到具有任意给定注释的类。类图,以及搜索其他感兴趣的标准,例如实现给定接口的类。(免责声明,我是“经典图”的作者。)ClassGraph可以在内存中、类路径上的所有类或白包中的类构建整个类图(所有类、注释、方法参数和字段)的抽象表示,您可以任意查询该类图。类图支持更多类路径规范机制和类加载器与任何其他扫描仪相比,它还可以与新的JPMS模块系统无缝工作,因此,如果您将代码建立在ClassGraph之上,那么您的代码将是最大的可移植性。请看这里的API。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java