为了账号安全,请及时绑定邮箱和手机立即绑定

在运行时扫描Java注释

在运行时扫描Java注释

白板的微信 2019-06-19 15:43:10
在运行时扫描Java注释对带注释的类搜索整个类路径的最佳方法是什么?我正在做一个库,我希望允许用户对他们的类进行注释,所以当Web应用程序启动时,我需要扫描整个类路径以获得特定的注释。您知道有一个库或Java工具可以这样做吗?编辑:我正在考虑类似JavaEE 5 Web服务或EJB的新功能。@WebService或@EJB系统在加载时发现这些类,因此它们可以远程访问。
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

使用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());


查看完整回答
反对 回复 2019-06-19
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

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


查看完整回答
反对 回复 2019-06-19
  • 3 回答
  • 0 关注
  • 549 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号