使用SpringBoot获取所有接口的路由

目录

  • SpringBoot获取所有接口的路由
  • Springboot部分路由生效
    • 问题记录

SpringBoot获取所有接口的路由
@AutowiredWebApplicationContext applicationContext; @RequestMapping(value = "https://www.it610.com/article/v1/getAllUrl", method = RequestMethod.POST)public Object getAllUrl() {RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class); // 获取url与类和方法的对应信息Map map = mapping.getHandlerMethods(); //List urlList = new ArrayList<>(); //for (RequestMappingInfo info : map.keySet()) {//// 获取url的Set集合,一个方法可能对应多个url//Set patterns = info.getPatternsCondition().getPatterns(); ////for (String url : patterns) {//urlList.add(url); //}//} List list = new ArrayList(); for (Entry m : map.entrySet()) {Map map1 = new HashMap(); RequestMappingInfo info = m.getKey(); HandlerMethod method = m.getValue(); 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); }


Springboot部分路由生效
问题记录
项目新增接口"foo",始终不生效,经排查发现controller层的@RequestMaping(value=https://www.it610.com/article/“test”)统一加了基础路径"test",我新增的接口注解为@PostMappinp(“test/foo),导致生成的路由为"test/test/foo”, 调用地址为"test/foo",所以报了404。
【使用SpringBoot获取所有接口的路由】以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    推荐阅读