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

 更新时间:2021年09月11日 11:00:57   作者:情陌人灬已不在  
这篇文章主要介绍了使用SpringBoot获取所有接口的路由方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SpringBoot获取所有接口的路由

@Autowired
    WebApplicationContext applicationContext;
 
    @RequestMapping(value = "v1/getAllUrl", method = RequestMethod.POST)
    public Object getAllUrl() {
        RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class);
        // 获取url与类和方法的对应信息
        Map<RequestMappingInfo, HandlerMethod> map = mapping.getHandlerMethods();
        
//      List<String> urlList = new ArrayList<>();
//      for (RequestMappingInfo info : map.keySet()) {
//          // 获取url的Set集合,一个方法可能对应多个url
//          Set<String> patterns = info.getPatternsCondition().getPatterns();
//
//          for (String url : patterns) {
//              urlList.add(url);
//          }
//      }
 
        List<Map<String, String>> list = new ArrayList<Map<String, String>>();
        for (Entry<RequestMappingInfo, HandlerMethod> m : map.entrySet()) {
            Map<String, String> map1 = new HashMap<String, String>();
            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=“test”)统一加了基础路径"test",我新增的接口注解为@PostMappinp(“test/foo),导致生成的路由为"test/test/foo”, 调用地址为"test/foo",所以报了404。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 9种Java单例模式详解(推荐)

    9种Java单例模式详解(推荐)

    这篇文章主要介绍了9种Java单例模式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java实现作业调度的示例代码

    Java实现作业调度的示例代码

    这篇文章主要为大家详细介绍了如何利用Java实现SJF算法调度,要求测试数据可以随即输入或从文件中读入,文中的示例代码讲解详细,需要的可以参考一下
    2023-04-04
  • java获取json中的全部键值对实例

    java获取json中的全部键值对实例

    下面小编就为大家分享一篇java获取json中的全部键值对实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Spring Boot 3.1中整合Spring Security和Keycloak的方法

    Spring Boot 3.1中整合Spring Security和Keycloak的方法

    本文介绍在最新的SpringBoot3.1版本之下,如何将Keycloak和Spring Security一起跑起来,文中结合实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2023-06-06
  • 使用Java实现生命游戏串行代码示例

    使用Java实现生命游戏串行代码示例

    生命游戏是一种二维细胞自动机,由英国数学家在1970年发明,在游戏的过程中,细胞会形成各种有规律的结构,展现出生命的复杂性和多样性,本文通过java和JavaFX实现了一个简单的生命游戏,可以直观的观察到细胞的迭代过程,需要的朋友可以参考下
    2024-10-10
  • 解决Spring Security集成knife4j访问接口文档出现403的问题

    解决Spring Security集成knife4j访问接口文档出现403的问题

    这篇文章主要给大家介绍了如何解决Spring Security集成knife4j访问接口文档出现403的问题,文中有详细的解决方案,有需要的朋友可以参考阅读下
    2023-07-07
  • 使用LambdaQueryWrapper动态加过滤条件 动态Lambda

    使用LambdaQueryWrapper动态加过滤条件 动态Lambda

    这篇文章主要介绍了使用LambdaQueryWrapper动态加过滤条件 动态Lambda,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。
    2022-01-01
  • Java实现将word转换为html的方法示例【doc与docx格式】

    Java实现将word转换为html的方法示例【doc与docx格式】

    这篇文章主要介绍了Java实现将word转换为html的方法,结合实例形式分析了java针对doc与docx格式文件的相关转换操作技巧,需要的朋友可以参考下
    2019-03-03
  • Java中绝对值函数的介绍与其妙用

    Java中绝对值函数的介绍与其妙用

    这篇文章主要给大家介绍了Java中绝对值函数的介绍与其妙用,其中包括绝对值函数用来获取表达式的绝对值和绝对值函数实现降序+升序输出。文章末尾给出了实例介绍,有需要的朋友们可以参考学习,下面来一起看看吧。
    2017-01-01
  • idea更改项目(模块)JDK版本的操作步骤

    idea更改项目(模块)JDK版本的操作步骤

    idea很多地方都设置了jdk版本,不同模块的jdk版本也可能不一样,下面这篇文章主要给大家介绍了关于idea更改项目(模块)JDK版本的操作步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11

最新评论