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

作者:情陌人灬已不在 时间:2021-08-29 22:28:34 

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。

来源:https://www.cnblogs.com/deityjian/p/12533302.html

标签:SpringBoot,接口,路由
0
投稿

猜你喜欢

  • JAVA 字符串加密、密码加密实现方法

    2023-11-28 04:08:09
  • Android仿微信录制语音功能

    2022-10-18 15:54:18
  • Java解析XML的四种方法详解

    2022-07-02 23:39:33
  • Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例代码

    2022-06-06 19:48:18
  • java并发编程专题(四)----浅谈(JUC)Lock锁

    2021-11-30 00:20:23
  • java在linux本地执行shell命令的实现方法

    2023-11-14 02:31:33
  • c#的时间日期操作示例分享(c#获取当前日期)

    2021-07-09 15:44:35
  • c# SqlDataAdapter中的Fill是怎么实现的

    2021-07-16 08:30:04
  • Spring实战之Bean定义中的SpEL表达式语言支持操作示例

    2021-07-07 10:46:19
  • java实现斗地主发牌系统

    2023-06-11 01:48:40
  • 详解 Java中日期数据类型的处理之格式转换的实例

    2021-12-29 05:17:49
  • 详解android 中animation-list 动画的应用

    2022-09-13 18:28:31
  • 一文详解Java拦截器与过滤器的使用

    2021-12-17 03:40:41
  • 用c#获得当前用户的Application Data文件夹位置

    2022-02-13 10:05:22
  • java项目中的绝对路径和相对路径用法说明

    2023-11-27 22:08:44
  • 从Cocos2d-x2迁移到Cocos2d-x3的过程分享

    2021-06-07 23:52:28
  • Android实现拍照添加时间水印

    2023-10-02 14:23:51
  • springmvc实现自定义类型转换器示例

    2021-09-29 23:46:53
  • android 开发教程之日历项目实践(二)

    2022-05-05 22:22:13
  • 完美解决客户端webview持有的页面缓存,不会立即释放的问题

    2021-09-23 03:30:50
  • asp之家 软件编程 m.aspxhome.com