Set<String> sets = new HashSet<>()
String basePackage = "com.springframework"
String searchPaths = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils.convertClassNameToResourcePath(basePackage) + "/**/*.class"
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver()
Resource[] resources = resolver.getResources(searchPaths)
MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory()
for (Resource resource : resources) {
MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource)
String className = metadataReader.getClassMetadata().getClassName()
sets.add(className)
}
sets.forEach(className -> System.out.println(className))