springboot获取请求映射路径(url)

    技术2022-09-02  89

    1.sprongboot获取所有的url和对应类和方法以及请求类型 代码如下:

    package com.es.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition; import org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition; import org.springframework.web.servlet.mvc.method.RequestMappingInfo; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import java.util.*; @Controller public class getAllUrlController { @Autowired WebApplicationContext applicationContext; @ResponseBody @RequestMapping("/getAllUrl") public List<Map<String, String>> getAllUrl() { // 获取springmvc处理器映射器组件对象 RequestMappingHandlerMapping无法直接注入 RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class); //获取url与类和方法的对应信息 Map<RequestMappingInfo, HandlerMethod> map = mapping.getHandlerMethods(); List<Map<String, String>> list = new ArrayList<Map<String, String>>(); for (Map.Entry<RequestMappingInfo, HandlerMethod> m : map.entrySet()) { Map<String, String> mapone = new HashMap<String, String>(); RequestMappingInfo info = m.getKey(); HandlerMethod method = m.getValue(); // 获取url PatternsRequestCondition p = info.getPatternsCondition(); for (String url : p.getPatterns()) { mapone.put("url", url); } // 反射获取url对应类名和方法名 mapone.put("className", method.getMethod().getDeclaringClass().getName()); // 类名 mapone.put("method", method.getMethod().getName()); // 方法名 // 获取请求类型 RequestMethodsRequestCondition methodsRequestCondition = info.getMethodsCondition(); for (RequestMethod requestMethod : methodsRequestCondition.getMethods()) { mapone.put("type", requestMethod.toString()); } list.add(mapone); } return list; } }

    可用于权限控制url的获取和权限标识(权限标识一般根据url生成)

    参考 :添加链接描述

    Processed: 0.012, SQL: 9