使用自定义注释扫描类路径以查找类

new*_*bie 14 java guice

例如,如果我有注释@MyOwnAnnotation,并在我的类路径有这些类,这样我可以以某种过滤器的可能扫描classpath中(例如,仅扫描开始包my.own.app.*),并获得与注释的所有类的列表@MyOwnAnnotation?我使用guice作为注入框架,我不使用Spring.

joh*_*tok 12

是的,请查看Scannotation库.

另外,请参阅以下博客文章,该文档使用了Scannotation.

基本示例:

URL[] urls = ClasspathUrlFinder.findClassPaths(); // scan java.class.path
AnnotationDB db = new AnnotationDB();
db.scanArchives(urls);
Set<String> entityClasses =
    db.getAnnotationIndex().get(MyOwnAnnotation.class.getName());
Run Code Online (Sandbox Code Playgroud)

您的注释需要具有"运行时"保留,以便它们.class在运行时在文件中可用.