//获取项目所有url
public String getAllUrl(ConfigurableApplicationContext run) {
LOGGER.info("getAllUrl Method is called.");
StringBuilder sbSql = new StringBuilder();
sbSql.append("INSERT INTO interfacelist(url,name,type) values");
//获取restcontroller注解的类名
String[] beanNamesForAnnotation = run.getBeanNamesForAnnotation(RestController.class);
//获取类对象
for (String str : beanNamesForAnnotation) {
Object bean = run.getBean(str);
while (AopUtils.isAopProxy(bean)) {
try {
bean = ((Advised) bean).getTargetSource().getTarget();
} catch (Exception e) {
throw new RuntimeException("get target bean failed", e);
}
}
Class<?> forName = bean.getClass();
System.out.println(forName.getName());
//获取requestmapping注解的类
//RequestMapping declaredAnnotation = forName.getAnnotation(RequestMapping.class);
RequestMapping declaredAnnotation = AnnotationUtils.findAnnotation(forName, RequestMapping.class);
String url_path = "";
if (declaredAnnotation != null) {
String[] value = (declaredAnnotation.value());
//获取类的url路径
url_path = value[0];
for (Method method : forName.getDeclaredMethods()) {
RequestMapping annotation2 = AnnotationUtils.findAnnotation(method, RequestMapping.class);
//RequestMapping annotation2 = method.getAnnotation(RequestMapping.class);
if (annotation2 != null) {
url_path += annotation2.value()[0];
//System.out.println("方法路径" + url_path + "方法名" + method.getName());
sbSql.append("('").append(url_path).append("','").append(method.getName()).append("','").append("api'),");
}
url_path = value[0];
}
}
}
//删除字符串sbCols最后一个逗号
sbSql.deleteCharAt(sbSql.length() - 1);
System.out.println(sbSql);
return sbSql.toString();
}