好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

SpringBoot获取所有接口的路由

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

@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://HdhCmsTestcnblogs测试数据/deityjian/p/12533302.html

查看更多关于使用SpringBoot获取所有接口的路由的详细内容...

  阅读:30次