package com.boco.nbd.wios.manage.util; import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; import org.springframework.core.type.classreading.MetadataReader; import org.springframework.core.type.classreading.MetadataReaderFactory; import org.springframework.core.type.filter.TypeFilter; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * @author:cao hai * @date:2022/6/17 11:02 * @version:V1.0 * @description:TODO ClassUtil * @modify: */ public class ClassUtil { /** * 通过packages获取class * * @param packages * @return */ public static List<Class<?>> getClassFromPackage(String... packages) { final List<Class<?>> list = new ArrayList<>(); for (String s : packages) { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false); provider.addIncludeFilter((metadataReader, metadataReaderFactory) -> { String className = metadataReader.getClassMetadata().getClassName(); try { Class<?> clazz = Class.forName(className); list.add(clazz); } catch (ClassNotFoundException e) { e.printStackTrace(); } return true; }); provider.findCandidateComponents(s); } return list; } }