在运行时扫描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());

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Scanning Java annotations at runtime

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

84 − = 78