@Autowired
private WebApplicationContext applicationContext;
@Override
public List getAllUrl() {
RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class);
// 获取url与类和方法的对应信息
Map map = mapping.getHandlerMethods();
List> list = new ArrayList>();
for (Map.Entry m : map.entrySet()) {
Map map1 = new HashMap();
RequestMappingInfo info = m.getKey();
HandlerMethod method = m.getValue();
//获取当前方法所在类名
Class> bean = method.getBeanType();
//使用反射获取当前类注解内容
Api api = bean.getAnnotation(Api.class);
RequestMapping requestMapping = bean.getAnnotation(RequestMapping.class);
String[] value = requestMapping.value();
map1.put("parent",value[0])
//获取方法上注解以及注解值
ApiOperation methodAnnotation = method.getMethodAnnotation(ApiOperation.class);
String privilegeName = methodAnnotation.notes();
PatternsRequestCondition p = info.getPatternsCondition();
for (String url : p.getPatterns()) {
map1.put("url", url);
}
map1.put("className", method.getMethod().getDeclaringClass().getName()); // 类名
map1.put("method", method.getMethod().getName()); // 方法名
RequestMethodsRequestCondition methodsCondition = info.getMethodsCondition();
for (RequestMethod requestMethod : methodsCondition.getMethods()) {
map1.put("type", requestMethod.toString());
}
list.add(map1);
}
return list;
}
本文地址:https://blog.csdn.net/qq_33371766/article/details/110248376
希望与广大网友互动??
点此进行留言吧!