获取SpringMVC中所有RequestMapping映射URL地址

来源:互联网 发布:知乎中文夹杂英文 编辑:程序博客网 时间:2024/06/01 17:54
废话不多说,直接上代码:
public String init(HttpServletRequest request, HttpServletResponse response){List<String> uList = new ArrayList<String>();//存储所有url集合WebApplicationContext wac = (WebApplicationContext) request.getAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE);//获取上下文对象RequestMappingHandlerMapping bean = wac.getBean(RequestMappingHandlerMapping.class);//通过上下文对象获取RequestMappingHandlerMapping实例对象Map<RequestMappingInfo, HandlerMethod> handlerMethods = bean.getHandlerMethods();for (RequestMappingInfo rmi : handlerMethods.keySet()) {PatternsRequestCondition prc = rmi.getPatternsCondition();Set<String> patterns = prc.getPatterns();for (String uStr : patterns) {uList.add(uStr);}}}
通过以上代码即可获取SpringMVC映射地址及其其他方法相关属性。

万变不离其宗,亦或是通过以下方式获取。
public void init(HttpServletRequest request,HttpServletResponse response) {List<String> uList = new ArrayList<String>();//存储所有url集合  WebApplicationContext wac = (WebApplicationContext) request.getAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE);//获取上下文对象Map<String, HandlerMapping> requestMappings = BeanFactoryUtils.beansOfTypeIncludingAncestors(wac, HandlerMapping.class, true, false);for(HandlerMapping handlerMapping : requestMappings.values()) {if(handlerMapping instanceof RequestMappingHandlerMapping) {RequestMappingHandlerMapping rmhm = (RequestMappingHandlerMapping) handlerMapping;Map<RequestMappingInfo, HandlerMethod> handlerMethods = rmhm.getHandlerMethods();for(RequestMappingInfo rmi : handlerMethods.keySet()) {PatternsRequestCondition prc = rmi.getPatternsCondition();Set<String> patterns = prc.getPatterns();for (String uStr : patterns)uList.add(uStr);}}}}

0 0
原创粉丝点击