Java 软件包中的注释扫描仪
我正在寻找一种简单的方法来查看我自己的注释的java包 我想做的是用我自己的注释标记一些类。扫描器每分钟都应该扫描一些包以查找此批注 用扫描瓶我试过了Java 软件包中的注释扫描仪,java,jboss,annotations,Java,Jboss,Annotations,我正在寻找一种简单的方法来查看我自己的注释的java包 我想做的是用我自己的注释标记一些类。扫描器每分钟都应该扫描一些包以查找此批注 用扫描瓶我试过了 URL url = ClasspathUrlFinder.findClassBase(FileWatcher.class); 使用AnnotationDB,我可以检查这个类(FileWatcher.class)是否有注释。现在我需要一个类的列表来扫描它们 我读了一些文章,大多数人说这是不可能的,因为classloader也可以加载外部jar文件
URL url = ClasspathUrlFinder.findClassBase(FileWatcher.class);
使用AnnotationDB,我可以检查这个类(FileWatcher.class)是否有注释。现在我需要一个类的列表来扫描它们
我读了一些文章,大多数人说这是不可能的,因为classloader也可以加载外部jar文件
我的另一个选择是复制子目录中包含这些注释的所有EJB项目,并扫描所有这些jar文件。我想那可能行得通,但没有更好的办法吗
许多问候,
豪克尝试使用。测试代码中有一些代码。谢谢。这很有帮助,而且工作起来很容易。如果有人需要:
String packagename = "de.whatever";
final Reflections reflections = new Reflections(packagename);
Set<Class<? extends CargoServiceListenerInterface>> subTypes = reflections.getSubTypesOf(CargoServiceListenerInterface.class);
for (Class<? extends CargoServiceListenerInterface> class1 : subTypes) {
System.out.println("Class : " + class1.getName());
}
String packagename=“de.where”;
最终反射=新反射(packagename);
设置如果您想要一个真正的轻量级(无依赖项,简单API,15 kb jar文件)和非常快速的解决方案,请查看在中找到的注释检测器。
扫描特定的包非常快(几毫秒)
其他选项请参见问题
免责声明:我是作者
<repositories>
<repository>
<id>reflections-repo</id>
<name>Reflections Maven2 Repository</name>
<url>http://reflections.googlecode.com/svn/repo</url>
</repository>
</repositories>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.5</version>
</dependency>