需要依赖spring环境
public class ReflectTest {
@Test
void reflect() throws Exception {
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource[] resources = resolver.getResources("classpath*:com/dd/**/*.class");
CachingMetadataReaderFactory readerFactory = new CachingMetadataReaderFactory();
ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
for (Resource resource : resources) {
//拿到类的全限定类名
String className = readerFactory.getMetadataReader(resource).getClassMetadata().getClassName();
Class<?> aClass = systemClassLoader.loadClass(className);
System.out.println(aClass);
}
}
}
该代码示例展示了如何在Spring环境下利用PathMatchingResourcePatternResolver获取类路径下所有匹配的类资源,然后通过CachingMetadataReaderFactory读取类的元数据,进一步使用系统类加载器加载这些类并打印其全限定名。

被折叠的 条评论
为什么被折叠?



