package com.gt.rig.testEnum;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.io.File;
import java.net.URL;
@Component
public class InitDataSource {
private String packageVo="com.gt.rig.testEnum";
@PostConstruct
public void initssss() {
initAllDataSourceType(packageVo);
}
private void initAllDataSourceType(String packageVo) {
URL url = this.getClass().getClassLoader().getResource(packageVo.replace(".", "/"));
File dir = new File(url.getFile());
for (File file : dir.listFiles()) {
if (file.isDirectory()) {
continue;
} else {
String className = packageVo + "." + file.getName().replace(".class", "");
try {
Class<?> clazz = Class.forName(className);// class cn.haoxy.ref.inter.impl.faceRecognition
//判断这个类上是否存在指定的注解
if (clazz.isAnnotationPresent(DataSourceType.class)) {
//如果存在,得到此注解的value值
DataSourceType dataSourceType = clazz.getAnnotation(DataSourceType.class);
//放入容器
CacheCollectionUtil.putClass(dataSourceType.asssss(), clazz);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
continue;
}
}
}
}
}
项目加载完毕后,将含有特殊注解的类存到map容器中
最新推荐文章于 2023-02-15 12:02:04 发布