Java中如何扫描项目内某个指定注解的类
有一个需求,要将多个文件的文件名放入一个list中,现在只知道这些文件在项目内,且都用相同的注解标注了。
如何获取这些文件呢?
反射
通过反射工具类来获取
引入依赖
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.11</version>
</dependency>
获取类
Reflections reflections = new Reflections("com.dong.xxx");
Set<Class<?>> serviceClasses = reflections.getTypesAnnotatedWith(xxx.class);
for (Class<?> serviceClass : serviceClasses) {
xxx xx = serviceClass.getAnnotation(xxx.class);
String serviceName = xxx.name();
}