在运行时扫描Java批注
在整个类路径中搜索带注释的类的最佳方法是什么?
我正在做一个库,我想允许用户注释他们的类,所以当Web应用程序启动时,我需要扫描整个类路径以查找某些注释。
你知道执行此操作的库或Java工具吗?
编辑:我正在考虑类似Java EE 5 Web服务或EJB的新功能。你使用@WebService
或注释类,@EJB
系统在加载时会找到这些类,因此可以远程访问它们。
回答:
使用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());
以上是 在运行时扫描Java批注 的全部内容, 来源链接: utcz.com/qa/404867.html