获取springMVC中所有URL Mapping

2020-06-18  本文已影响0人  程序员老帮菜
    @Resource
    private RequestMappingHandlerMapping handlerMapping;

    public void getAllRequestMapping(){
        // 所有URL mapping
        List<String> requestMappingList = new ArrayList<>();
        Map<RequestMappingInfo, HandlerMethod> requestMappingInfoHandlerMethodMap = this.handlerMapping.getHandlerMethods();
        Optional.ofNullable(requestMappingInfoHandlerMethodMap).ifPresent(map -> {
            map.forEach((requestMappingInfo, handlerMethod) -> {
                Optional.ofNullable(requestMappingInfo.getPatternsCondition()).ifPresent(patternsRequestCondition -> {
                    Optional.ofNullable(patternsRequestCondition.getPatterns()).ifPresent(set -> {
                        set.forEach(s ->{
                                    // 解决rest方式 占位符问题 /home/get/{id} 替换为 /home/get/
                                    String url = s.replaceAll("\\{.*\\}", "");
                                    if(StringUtils.hasLength(url)){
                                        requestMappingList.add(url);
                                    }
                                }
                        );
                    });
                });
            });
        });
    }
上一篇 下一篇

猜你喜欢

热点阅读