/** * 获取所有的url * * @author Lynch */ @ResponseBody @RequestMapping("index") public void index() { List<RestModel> list = new ArrayList<RestModel>(); Map<String, RestModel> map = new HashMap<String, RestModel>(); List<String> urlList = new ArrayList<String>(); WebApplicationContext wac = (WebApplicationContext) ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE); Map<String, HandlerMapping> requestMappings = BeanFactoryUtils.beansOfTypeIncludingAncestors(wac, HandlerMapping.class, true, false); for (HandlerMapping handlerMapping : requestMappings.values()) { if (handlerMapping instanceof RequestMappingHandlerMapping) { RequestMappingHandlerMapping rmhm = (RequestMappingHandlerMapping) handlerMapping; Map<RequestMappingInfo, HandlerMethod> handlerMethods = rmhm.getHandlerMethods(); for (RequestMappingInfo rmi : handlerMethods.keySet()) { PatternsRequestCondition prc = rmi.getPatternsCondition(); RequestMethodsRequestCondition mt = rmi.getMethodsCondition(); String md = ""; for(RequestMethod method : mt.getMethods()) { md = method.name(); break; } Set<String> patterns = prc.getPatterns(); HandlerMethod handlerMethod = handlerMethods.get(rmi); for (String url : patterns) { Class<?> clazz = handlerMethod.getBeanType(); Method method = handlerMethod.getMethod(); RestModel restModel = new RestModel(); restModel.setUrl(url); restModel.setClazz(clazz.toString()); restModel.setMethod(md); map.put(url, restModel); urlList.add(url); } } } } String[] urls = new String[urlList.size()]; urls = urlList.toArray(urls); Arrays.sort(urls); for (String url : urls) { list.add(map.get(url)); } }