package com.cy.pj.mybatis;
import ann.embarrass;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.util.*;
public class TestAnn {
@Test
public void testAnn() throws ClassNotFoundException, IllegalAccessException, InstantiationException {
Map map = new HashMap();
//需要遍历的路径:
File file = new File("./src/main/java/com/cy/pj/spring");
//创建集合接收所有file
List list = findFile(new ArrayList(), file);
for (int i = 0; i < list.size(); i++) {
//此时获取的是路径字符串.srcmainjavacomcypjspringbeansAppConfig.java
//需要做字符串转换:从最后一个出现的下标+1开始截取,并把后缀替换为空,即得到AppConfig
String str = list.get(i).substring(16).replace('\', '.').replaceAll(".java", "");
//创建类对象,参数是String类型,直接用str作为参数传值即可
Class cls = Class.forName(str);
System.out.println(cls);
//is-是 annotation-注解 present-存在:判断注解是否存在
if (cls.isAnnotationPresent(embarrass.class)) {
//如果是,获取简名,并将首字母替换为小写的
String st = cls.getSimpleName();
st = st.substring(0, 1).toLowerCase() + st.substring(1);
System.out.println(st);
//放入集合中:
//map.put(st,cls.newInstance());
map.put(st, cls.getName());
}
;
}
System.out.println(map.keySet());
System.out.println(map);
}
public List findFile(List list, File file) {
File files[] = file.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
findFile(list, files[i]);
} else if (files[i].isFile()) {
System.out.println("路径" + files[i]);
list.add(files[i] + "");
}
}
return list;
}
}